目标:
    1:掌握如何在装饰器外部设置变量(定义函数)
    2:掌握怎么使用设置外部变量后的装饰器!
    3:掌握不设置外部变量的装饰器与设置外部变量装饰器的区别


    一:如何在装饰器外部设置变量(定义函数)

    答:即在装饰器(原始闭包)的外部再次定义一个函数并且返回原装饰器外层函数的函数名

    注意事项:设置装饰器外部变量看着像是创造了装饰器,因此这种语法模式也被称为装饰器工厂模式

    图示:

    image.png


    二:怎么使用设置外部变量后的装饰器!

    关键字:@设置的外部变量函数名(参数) 例如 @variable(“haha”)

    注意:@variable(“haha”) 分为三步从而达到调用装饰器的目的
    第一步:先执行 variable(“haha”)函数
    第二步:执行 @第一步函数的返回值 例如 @function_out
    第三步:正常执行装饰器的步骤


    图示:

    image.png


    三:不设置外部变量的装饰器与设置外部变量装饰器的区别

    答:装饰器的调用一定要注意区别

    例如 @ viriable(“lala”) 与 @viriable 有参数和没参数就天差地别

    注意:装饰器的调用有参数就说明这个装饰器设置了外部变量,没有参数就没有设置外部变量!