带参数的装饰器

 

Flag = True


def wrapper_out(flag):
    def wrapper(func):
        def inner(*args, **kwargs):
            if flag:            
                print("装饰之前要做的事")
                ret = func(*args, **kwargs)
                print("装饰之后要做的事")
                return ret
            else:            
                print("没有装饰")
                ret = func(*args, **kwargs)
                return ret
        return inner
    return wrapper


@wrapper_out(Flag)
def func():
    print("函数被执行")
    return "返回值"


ret = func()
print(ret)

 

posted @ 2020-05-05 13:36  CherryYang  阅读(105)  评论(0)    收藏  举报