#多个装饰器装饰一个函数
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()