1.函数嵌套的定义
概念:在一个函数的内部定义另一个函数
函数嵌套的定义:
1)函数(f1)想要使用(f2)的值,可以将f2直接定义到f1内部,这样就可以访问到f2的局部变量
2)函数f2在嵌套后只能f1中使用,外部想要使用只能通过f1,只能把f2作为f1函数的返回值
3)在外部也用同名的变量f1来接收f2函数的执行结果(f1函数的返回值),那么f2也就是可以在外部被调用
@outer语法来调用outer,规定传入被装饰的函数对象,所以参数固定为一个,接受被装饰的函数对象
def outer(func):
不能确定被装饰的函数的参数:来者不拒,用可边长来接受
def inner(*args, **kwargs):
pass # 新功能位
res = func(*args, **kwargs) # 解压带给原功能
pass # 新功能位
return res
return inner
# 使用装饰器(outer),得到新功能(inner)
# 用被装饰的函数名去接受装饰器的执行结果,调用装饰器时传入被装饰的函数对象
@outer # fn = outer(fn) = inner
def fn(): pass