python闭包和装饰器
闭包 定义:两个函数的嵌套,外部函数返回内部函数的引用,内函数运用了外部函数参数传入的临时变量。 作用:装饰器的实现,提高代码的复用性 缺点:引用了外部函数的局部变量,该变量没有及时释放,消耗内存 模板:def 外部函数(a): ------必须含有参数,否则无嵌套的意义 def 内部函数(b): ------参数可有可无, print(a+b) -----参数的运算操作 return 内部函数 ------外部函数返回内部函数的引用 调用:外部函数() ------ 调用外部函数 func = 外部函数() func()-------调用内部函数 装饰器 定义:一种特殊的函数,由两个函数嵌套(即闭包)实现 作用:在不修改函数的参数及返回值的前提下,对函数增加额外功能 使用场景:插入日志,函数执行时间统计,函数前后操作处理,权限校验,缓存等 万能装饰器模板: def get_fun(func): ------外部函数,参数是传入的原函数 def call_fun(*args.**kwargs): ------内部函数,是装饰后函数的引用 print("增加功能“) ------为原函数添加功能的代码 return func(*args,**kwargs) ------原函数的调用,return可返回原函数的返回值 return call_fun ------外部函数返回内部函数