装饰器就是装饰函数的函数,为函数添加功能的容器
引入装饰器的原因主要是为了在不修改原有函数代码的情况下,增加额外功能
# 无参数装饰器模板
def wrapper(func):
def inner(*args,**kwargs):
res = func(*args,**kwargs)
reunrn res
retun inner
# 写一个程序运行,计算程序快慢
import time
def timer(func):
def wrapper(*args,**kwargs):
start_t = time.time()
res = func(*args,**kwargs)
end_t = time.time()
pritn("这个程序运行时间:{}".format(end_t-start_t))
return res
return wrapper
def foo():
print(1)
time.sleep(2)
foo=timer(foo)
foo()
@timer # bar = timer(bar)
def bar(a,b):
print(a,b)
return a,b
bar(1,3)
原文:https://www.cnblogs.com/wait59/p/13160360.html