直接上代码:
# Author : geoker
# Date :2018/9/28 23:32
import time
'''
@Author:geoker
一个简单的装饰器实现打印函数被调用时间和次数
'''
def decorate(fun):
'''
打印函数被调用的时间及调用次数
'''
count = 0
def wrapper(*args,**kwargs):
nonlocal count
start_time = time.time()
data = fun(*args,**kwargs)
stop_time = time.time()
dt = stop_time - start_time
count += 1
print("被调用%d次,本次调用花费时间%f秒。"%(count,dt))
return data
return wrapper
@decorate
def demo():
print("hello world!")
time.sleep(0.5)
if __name__ == '__main__':
for i in range(3):
demo()
运行上述代码返回结果如下:
hello world!
被调用1次,本次调用花费时间0.501208秒。
hello world!
被调用2次,本次调用花费时间0.502655秒。
hello world!
被调用3次,本次调用花费时间0.504599秒。