闭包:
两个函数嵌套,外部函数返回内部函数的引用,外部函数必须有参数
闭包和普通函数的区别:
1. 格式差异:函数嵌套,外部函数返回内部函数的引用,外部函数必须有参数
2.函数的参数保存着调用函数的引用
装饰器:
1. 是什么:@闭包的外部函数
2. 作用:装饰前不改变原先函数的代码,装饰后给原先函数增加额外功能
3. 代码如何写:
① 闭包
② @闭包的外部函数
③ 定义一个函数
④ 调用函数
4.装饰器通用格式:
def set_fun(func):
def call_fun(*args, **kwargs):
return func(*args, **kwargs)
return call_fun
@set_fun
def test(*args,**kwargs)
return 值
test(*args,**kwargs)
5.多个装饰器装饰一个函数
装饰顺序:由下往上
调用顺序:由上往下