函数修饰函数
参考这老哥的讲特别明白
from functools import wraps
import time
# 简单的统计函数的运行时间的
def Dtime(func):
@wraps(func) # 用于保持原有函数的本质不变
def wrapfunc(*a,**b):
start_time = time.time()
func(*a,**b)
print('用时',time.time()-start_time)
# 为什么返回的是一个函数,因为调用Dtime(函数)的时候就已经运行完了,还怎么作其他的?
return wrapfunc
@Dtime
def func(end,start=0):
sum=0
for i in range(start, end+1):
sum += i
func(end=12)
>>> 用时 5.4836273193359375e-06