python万能装饰器实现计算函数的调用次数和执行时间

版权声明:本文由monkey原创撰写,转载请注明文章来源! https://blog.csdn.net/weixin_44143222/article/details/87203668

直接上代码

# python万能装饰器实现计算函数的调用次数和执行时间
import time


def set_fun(func):
    num = 0  # 初始化次数

    def call_fun(*args, **kwargs):
        nonlocal num # 声明num 变当前作用域局部变量为最临近外层(非全局)作用域变量。
        start = time.time()  # 代码执行开始时间
        num += 1 # 每次调用次数加1
        print("测试功能:")
        func(*args, **kwargs) # 原函数
        end = time.time() # 代码执行结束时间
        longtime = end - start
        print("此函数被调用%s次,本次调用花费时间:%s" % (num, longtime))

    return call_fun


@set_fun
def test():
    print("测试中~~~~~")
    time.sleep(1)

# 在这里调用三次函数
test()
test()
test()

运行效果如下

测试功能:
测试中~~~~~
此函数被调用1次,本次调用花费时间:1.0134446620941162
测试功能:
测试中~~~~~
此函数被调用2次,本次调用花费时间:1.0088226795196533
测试功能:
测试中~~~~~
此函数被调用3次,本次调用花费时间:1.0122005939483643

猜你喜欢

转载自blog.csdn.net/weixin_44143222/article/details/87203668
今日推荐