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这个装饰器下函数是否选择被装饰。

posted @ 2018-12-16 01:55  不会玩python  阅读(17)  评论(0编辑  收藏  举报