函数三
高阶函数
一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。
作为函数返回值:
作为函数的参数:
匿名函数
1.lambda 表达式,lambda 函数表达式是用来创建一些简单的函数, 它是函数创建的另外一种方式。语法:lambda 参数列表:返回值。作用是:lambda 函数只会调用一次,调完之后就从内存中消失,匿名函数一般用作参数使用。如 :
print((lambda a,b : a + b)(5,2))
2.filter()函数,可以从序列中过滤出符合条件的元素,保存到一个新的序列当中。
参数:1.函数,根据该函数来过滤序列(可迭代结构);2.需要过滤的序列(可迭代结构)
返回值:过滤后的新序列
3.map()函数,可以对可迭代对象中所有元素做指定的操作,然后将其添加到一个新的对象中返回。
4.sort()函数,可以对列表进行排序。注意关键字key需要通过一个函数来作为参数。如:
5.sorted(),会返回一个新列表,不会改变原列表排列顺序。
闭包
将函数作为返回值返回(也是一种高阶函数),通过闭包可以创建一些当前函数才可以访问的对象,还可以将一些私有数据藏到闭包中。
闭包的条件:
1.函数嵌套;2.将内部函数作为返回值返回;3.内部函数标量必须使用外部函数的变量。
装饰器
python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。
如:
总结:
start_end(fn) 类似于这样的函数其实就是一个装饰器。通过装饰器可以在不修改原函数的情况下对函数进行扩展, 在开发当中,都是通过装饰器来扩展函数的功能。