装饰器
一:什么是装饰器?
装饰器就是装饰函数的函数,为函数添加功能的容器
二:为什么要有装饰器?
引入装饰器的原因主要是为了在不修改原有函数代码的情况下,增加额外功能
三:如何使用装饰器
# 无参数装饰器模板
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)