Python高阶函数与装饰器函数
高阶函数
1、可以使用函数对象作为参数的函数
2、或可以将函数作为返回值的函数
3、函数对象:定义好的函数,使用函数名调用(不要加括号)
#将函数作为参数的高阶函数,通过传入不同的函数,可以使执行的结果不同
4、内置高阶函数
(1)map数据映射函数
map函数接收的是两个参数,一个函数,一个序列,其功能是将序列中的值处理再依次返回至列表内。其返回值为一个迭代器对象
(2)reduce累计函数
reduce函数也是一个参数为函数,一个为可迭代对象的高阶函数,其返回值为一个值而不是迭代器对象,故其常用与叠加、叠乘等
装饰器函数
1、是不修改原函数的代码的基础上,修改增加其他函数功能的函数
2、一个装饰器函数可以给n个函数添加或修改相同的功能
装饰器函数的实现方法
1、是一个嵌套函数
2、它也是一个高阶函数,将原函数作为参数,将内部函数作为返回值
3、将原函数替换为内部函数,原函数在内部函数中执行保留原函数的功能
#通过args 和 *kwargs 传递被修饰函数中的参数
#@符号是装饰器的语法糖,在定义函数的时候使用,避免再一次赋值操作
有参装饰器(给无参装饰器上再加一层函数用于接收参数)