一、么是装饰器?
装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。
装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景
二、装饰器的实现
定义一个用于计算运行时间的装饰器函数:
def count_time(func):
def wrapper(*args,**kwargs):
start_time = datetime.datetime.now()
print(start_time)
func()
end_time = datetime.datetime.now()
print(end_time)
print(end_time-start_time)
return wrapper
主函数:
@count_time
def main():
print('>>>>开始计算函数运行时间')
for i in range(1, 100): # 可以是任意函数 , 这里故意模拟函数的运行时间
for j in range(i):
print(j)
此main函数可以打印运行前和运行后的时间,并显示总共的运行时间。