实现计算不同函数运行时间,最先想到的方法是在不同函数运行前后分别计时,然后后计算2者的时间差就可以了,然而代码就会有大量重复的计时语句,使用Python函数闭包的方法就可以快速解决这个问题,代码实现如下,供需要的参考。
import time
import random
def timer(func):
"""装饰器:打印函数耗时"""
def decorated(*args, **kwargs):
st = time.perf_counter()
ret = func(*args, **kwargs)
print('%s time cost: {} seconds'.format(time.perf_counter()- st) % str(func))
return ret
return decorated
@timer
def random_sleep():
"""随机睡眠一小会儿"""
time.sleep(random.random())
@timer
def add(a, b):
return a + b
random_sleep()
c = add(101, 304)
print(c)