• 装饰递归函数


    装饰递归函数:

    简洁版:
    import time
    
    def GetRunFunc(func):
        Call = True
        if Call:
            def Call_Func(*args, **kwargs):
                Call = False
                start_time = time.time()
                ret = func(*args, **kwargs)
                end_time = time.time()
                Run_time = end_time - start_time
                print(str(func.__name__) + "函数的运行时间为:" + str(Run_time) + "秒")
                return ret
    
        return Call_Func
    
    
    注释版:
    import time
    
    
    def GetRunFunc(func):
        Call = True
        if Call:
            # if Call: 此判断语句是针对装饰递归函数的情况, 如果装饰过此函数后, 就不再装饰
            def Call_Func(*args, **kwargs):
                Call = False
                start_time = time.time()
                # 开始时间
                ret = func(*args, **kwargs)
                # 调用被装饰的函数, func(*args, **kwargs), 调用函数为什么用func内, 装时器的特性, 将被装饰的函数的名字当作参数传递进来进行装饰
                end_time = time.time()
                # 结束时间
                Run_time = end_time - start_time
                # 运行时间 = 结束时间 - 开始时间
                print(str(func.__name__) + "函数的运行时间为:" + str(Run_time) + "秒")
                return ret
                # 将被装饰的函数的返回
    
        return Call_Func
        # 返回函数的引用
    
    
  • 相关阅读:
    06_springboot热部署
    05_springboot多配置文件
    04_springBoot端口和上下文路径
    03_springboot错误处理.md
    02_springboot部署-jar和-war的方式
    01_idea创建springboot
    Vue学习笔记
    Java使用Swing实现五子棋。
    我的开源项目
    Java常用库和工具类
  • 原文地址:https://www.cnblogs.com/amou/p/8991699.html
Copyright © 2020-2023  润新知