动态的关闭和开启装饰器
我们可以通过一个变量来动态的关闭或开启装饰器
on = False
def strong(fun): # fun 将来就是被替换的 hello
global on
if on:
def new_hello():
print("我是装饰器中的代码, 在 hello 之前执行的")
fun()
print("我是装饰器中的代码, 在 hello 之后...执行的")
return new_hello
else:
return fun
@strong
def hello():
print("我是 hello 函数中的代码")
# 这里调用的其实是装饰器返回的函数.
hello()
说明:
通过
on
来决定是否启用装饰器.True
的时候, 启用装饰器on
是False
的时候, 直接返回原始的函数, 则相当于没有启用装饰器