实现计算不同函数运行时间,最先想到的方法是在不同函数运行前后分别计时,然后后计算2者的时间差就可以了,然而代码就会有大量重复的计时语句,使用Python函数闭包的方法就可以快速解决这个问题,代码实现如下,供需要的参考。
import time
import randomdef 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 + brandom_sleep()
c = add(101, 304)
print(c)