装饰器

Posted noplablem-wangzhe0635

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器相关的知识,希望对你有一定的参考价值。

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)







































以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python 装饰器:装饰器实例类装饰器(装饰函数)

装饰器、装饰器类与类装饰器(三)

Python进阶装饰器(Decorator)

python 装饰器:装饰器实例内置装饰器

python 装饰器:装饰器实例内置装饰器

TS之装饰器