一个简单的python装饰器实现打印函数被调用时间和次数

 

直接上代码: 

# 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秒。

 

你可能感兴趣的:(python)