一个可以计算程序运行时间的装饰器
这两天看廖老师的python教程,看到装饰器练习题的时候,有个同学的答案给的挺好,就复制出去运行了一下,结果运行不起来,于是根据报错改了一下,把代码发上来做个记录。
装饰器代码
import functools #这句不懂可以看廖老师的教程
import time
def metric(fn):
@functools.wraps(fn) #这句不懂可以看廖老师的教程
def wrapper(*args, **kw):
start = time.time()
res = fn(*args, **kw)
print('%s executed in %f s' % (fn.__name__, time.time()-start))
return res
return wrapper
#以下是测试效果
@metric
def test1():
time.sleep(5)
test1()
test1 executed in 5.005065 s
@metric
def test2():
time.sleep(10)
test2()
test2 executed in 10.010067 s