美文网首页
抽象函数

抽象函数

作者: Nico酱 | 来源:发表于2016-06-04 10:38 被阅读22次

    抽象函数

    一 ==概念==:

    函数是一个可以重复使用的代码块,而且他有名称,授受参数的传入,返回输出

    抽象,迭代输出列表的例子

    例如:

    l = [1,2,3,4,5,6]
    for i in l:
            print i
    

    工具:sublime text2

    界面更改字体:

    {"font_face":Ubuntu Mono

    "font_size":14

    }


    二,==内置函数==:

    • max()
    • min()
    • len()
    • type()
    • id()
    • dir()

    三,==创建==

    def test(a):
        """
        test doc.
        """
        a.sort()
        return a
    print test(l)
    
    1. 保留关键字 def 空格 函数 名称
    2. 函数名后面是需要传入的参数,放在小括号,声明部分以冒号结束
    3. 第二行建议三引号括起来写描述文档
      1. 调用函数文档:test.__doc__
      2. 或者help(test)
    4. 函数一定要有return返回值

    四,==函数的参数==

    这个参数用来像函数内部传递一些参数,处理后return返回

    1. 传递参数

    2. 位置参数(必填),关键字参数(可选)

      默认参数是位置参数,从左至右传入

      关键字参数,直接通过变量名匹配

    3. 参数的值是局部的,他只在函数内部发生作用

      全局作用可以用 globle a

    4. *是元组 #收集器

      **是字典

    def test(a,b,*arg1,**arg2):     #位置参数在前,元组需放在字典参数前
        '''
        测试元组,字典,位置参数
        '''
        return a,b,arg1,arg2
    print test(3,4,4,5,6,j=4,k=3,m=5)
    
    结果:(3, 4, (4, 5, 6), {'k': 3, 'j': 4, 'm': 5})
    

    pass 的问题

    print "a>b" if a>b else pass

    会出错,因为pass不能作为输出,可以加上引号"pass"


    没有return会返回none


    ==抽象加法例==

    def add(*num):
        '''
        加法
        '''
        n = 0
        for i in num:
            n += i 
    

    instance(num,int)判断类型

    assert断言关键字 ,成立就什么都不做,如果条件不成立就会报错 assert add(a,b) == 4 ,"标明原因"


    注意事项

    1. 学习使用好函数
      1. 现实现代码的功能,在把他抽象成函数
      2. 抽象成函数:先写伪代码,命名规范,默认参数
      3. 考虑函数健壮性
    2. 自省fun.__code__
    3. 作用域
    4. 可变参数的问题

    lambda匿名函数

    1. lambda,行内函数

    2. 格式:

      lambda x: x+1

      lambda 参数: 表达式

      简单任务用lambda,复杂任务用def

    3. 如何调用

      l = lambda x: x+1
      l(2)
      

      lambda主体内想要用if语句,需要用三元表达式

      三元表达式 x if x>y else y

      l = lambda x,y:x if x>y else y 例子

      for 循环,利用列表推导式

      l = [222,23,467,34,657]
      f = lambda x:[item for item in x if item > 30]
      print f(l)
      
    4. filter函数

      .isalnum() 所有字符都是数字或字母

      f = filter(lambda x: x.isalnum(),l)

      filter 把不满足的条件全部过滤

    5. 递归

      调用函数本身

      factorial ==阶乘==

    相关文章

      网友评论

          本文标题: 抽象函数

          本文链接:https://www.haomeiwen.com/subject/hbyldttx.html