叫什么: 闭包 有什么用: 跟函数相对可以把外层函数的参数保留下来 怎么写: def 外层函数(参数): def 内层函数(): pass return 内层函数 心法: 两个函数的嵌套,外层函数返回内层函数的引用,外层函数必须有参数
装饰前的test是由func指向的
装饰后的test其实指向call_fun
道德不要去修改原先函数的值跟调用的方式
func ,装饰前的test, call_fun 三者参数一样的
def set_fun(func): def call_fun(*args,**kwargs): return func(*args,**kwargs) return call_fun
装饰器传参
在闭包外层再套一层def set_args(args):
def set_fun(func):
def call_fun(*args,**kwargs):
return func(*args,**kwargs)
return call_fun
return set_fun