import time
#装饰带参数的装饰器
def timer(f):
def inner(*args,**kwargs):
start=time.time()
ret=f(*args,**kwargs) #被装饰的函数
end=time.time()
print( end -start)
return ret
return inner
@timer #@装饰器的函数b,
def func(a,b):
time.sleep(0.1)
print('老板好,同事好,大家好。',a,b)
return '新年好'
@timer #@装饰器的函数b,
def func1(a):
time.sleep(0.1)
print('老板好,同事好,大家好。',a)
return '新年好'
固定模式:
def wrapper(f): #zh装饰器函数,f 是指被装饰的函数
def inner(*args,**kwargs):
#在被装饰函数之前要做的事情
ret=f(*args,**kwargs) #被装饰的函数
#在被装饰函数之后要做的事情
return ret
return inner #不加括号
@wrapper #@装饰器的函数b,
def func(a,b):
time.sleep(0.1)
print('老板好,同事好,大家好。',a,b)
return '新年好'
ret=func(1,2)
ret=func1(1)
print(ret)