目标:
1:掌握如何在装饰器外部设置变量(定义函数)
2:掌握怎么使用设置外部变量后的装饰器!
3:掌握不设置外部变量的装饰器与设置外部变量装饰器的区别
一:如何在装饰器外部设置变量(定义函数)
答:即在装饰器(原始闭包)的外部再次定义一个函数并且返回原装饰器外层函数的函数名
注意事项:设置装饰器外部变量看着像是创造了装饰器,因此这种语法模式也被称为装饰器工厂模式
图示:
二:怎么使用设置外部变量后的装饰器!
关键字:@设置的外部变量函数名(参数) 例如 @variable(“haha”)
注意:@variable(“haha”) 分为三步从而达到调用装饰器的目的
第一步:先执行 variable(“haha”)函数
第二步:执行 @第一步函数的返回值 例如 @function_out
第三步:正常执行装饰器的步骤
图示:
三:不设置外部变量的装饰器与设置外部变量装饰器的区别
答:装饰器的调用一定要注意区别
例如 @ viriable(“lala”) 与 @viriable 有参数和没参数就天差地别
注意:装饰器的调用有参数就说明这个装饰器设置了外部变量,没有参数就没有设置外部变量!