python-装饰器进阶day13

#多个装饰器装饰一个函数
def wrapper1(func):
    def inner(*args,**kwargs):
        print("before1")
        ret=func()
        print("after1")
        return ret
    return inner
def wrapper2(func):
    def inner(*args,**kwargs):
        print("before2")
        ret=func()
        print("after2")
        return ret
    return inner
@wrapper2
@wrapper1
def f():
    print("你好")
f()


#带参数的装饰器
#500个函数
import time
FLAGE = False
def timmer_out(flag):
    def timmer(func):
        def inner(*args,**kwargs):
            if flag:
                start = time.time()
                ret = func(*args,**kwargs)
                end = time.time()
                print(end-start)
                return ret
            else:
                ret = func(*args, **kwargs)
                return ret
        return inner
    return timmer
# timmer = timmer_out(FLAGE)
@timmer_out(FLAGE)    #wahaha = timmer(wahaha)
def wahaha():
    time.sleep(0.1)
    print('wahahahahahaha')

@timmer_out(FLAGE)
def erguotou():
    time.sleep(0.1)
    print('erguotoutoutou')

wahaha()
erguotou()

猜你喜欢

转载自www.cnblogs.com/orange126/p/10869721.html
今日推荐