一,闭包
内部函数可以引用外部函数的参数和局部变量,当外部函数返回内部函数的引用时,相关的参数和变量都保存在返回的函数中。
闭包函数的基本格式:
def set_fun(参数): # 外部函数必须要有参数
def call_fun()
return call_fun #内部函数的引用
num = set_fun(参数)
注意点:
1,外部函数必须要有返回值
2,外部函数返回内部函数的引用
3,数据会被保存下来
4,返回闭包时,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
二,装饰器
1.在代码运行期间,动态增加功能的方式。
2.万能装饰器的格式
def set_fun(func):
def call_fun(*args, **kwargs):
return func(*args, **kwargs)
return call_fun
@set_fun # test = set_fun(test)
def test():
print('test')
test()
3.装饰器的功能
- 引入日志
- 函数执行时间统计
- 执行函数前预备处理
- 执行函数后清理功能
- 权限校验等场景
- 缓存