python:如何批量装饰和取消装饰器函数(有参)
flag = False
def bool(flag):
def wrapper(func):
def inner(*args,**kwargs):
if flag:
print('decoration function start')
ret = func(*args,**kwargs)
print('decoration function end')
return ret
else:
ret = func(*args,**kwargs)
return ret
return inner
return wrapper
@bool(flag)
def func():
print('this is a test')
func()
在装饰器函数外再嵌套一个装饰器函数,用于批量控制使用wrapper这个装饰器下函数是否选择被装饰。