zoukankan      html  css  js  c++  java
  • 装饰递归函数

    装饰递归函数:

    简洁版:
    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
        # 返回函数的引用
    
    
  • 相关阅读:
    java占位符
    linux安装jdk
    linux安装svn
    java判断是汉字和英文
    mysql删除未提交的事务
    Html 解决长串英文字母显示不能自动换行
    spring boot 定时任务
    mybatis批量插入数据
    文本域换行符号
    rabbitmq,生成者和消费者
  • 原文地址:https://www.cnblogs.com/amou/p/8991699.html
Copyright © 2011-2022 走看看