匿名函数lambda,闭包,装饰器
定义:顾名思义,就是没有名字的函数。python中使用lambda关键字定义的函数。
结构:lambda 参数:表达式。参数可以接收任意多个,但是只能返回有个表达式值,适合于多个参数,一个返回值的场景。
闭包:外部函数返回内部函数的引用,内部函数使用外部函数的变量或者参数
def outer(out_num):
def inner(in_num):
a = out_num + in_num # 内部函数使用外部函数的参数
print(a)
return inner # 外部函数返回内部函数的引用
f = outer(2)
print(f)
拓展:如果内部函数修改外部函数的变量时,使用nonlocal,而不是global闭包的用处:在不改变原有的代码情况下增加新的功能。@outer就是一个装饰器,原理上就是调用闭包函数。
万能的装饰器模板: