美文网首页
程序执行时间-装饰器

程序执行时间-装饰器

作者: ckawyh | 来源:发表于2017-06-02 16:07 被阅读0次
import time
from functools import wraps

def fn_timer(function):
    @wraps(function)
    def function_timer(*args, **kwargs):
        t0 = time.time()
        result = function(*args, **kwargs)
        t1 = time.time()
        print ("Total time running %s: %s seconds" %
                (function.func_name, str(t1-t0))
                )
        return result
    return function_timer


@fn_timer
def random_sort(n):
    return sorted([random.random() for i in range(n)])
 
if __name__ == "__main__":
    random_sort(2000000)

因为返回的那个wrapper()函数名字就是'wrapper',所以,需要把原始函数的name等属性复制到wrapper()函数中,否则,有些依赖函数签名的代码执行就会出错。

不需要编写wrapper.name = func.name这样的代码,Python内置的functools.wraps就是干这个事的

相关文章

  • 程序执行时间-装饰器

    因为返回的那个wrapper()函数名字就是'wrapper',所以,需要把原始函数的name等属性复制到wrap...

  • 类里方法的装饰器

    类的方法的装饰器 方法的装饰器的执行时间也是在类定义之后,立即对类的方法进行装饰修改 方法的装饰器接受3个参数 ...

  • 检测Python程序的执行效率

    检测Python程序的执行效率的几种方法 1.在函数上加装饰器,来得到函数的执行时间。 2.用timeit模块来计...

  • Python-装饰器

    以装饰一个函数为例子, 打印出函数的开始执行时间。 常规方式实现: 输出: 装饰器方式实现: 输出:

  • 装饰器

    1) 示例:使用装饰器,判断程序运行的时间 2) 总结 -- 装饰器

  • python 计算函数执行时间装饰器(装饰器写法)

    import timeimport functoolsdef clock(func):@functools.wra...

  • 使用wraps装饰器装饰装饰器的内层函数

    使用装饰器装饰函数,程序运行后出现AssertionError: View function mapping is...

  • Python 装饰器

    python 装饰器装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python...

  • python中的装饰器

    设计一个decorator装饰器,它可作用于任何函数上,并打印该函数的执行时间: import time def ...

  • python_装饰器

    装饰器(decorator)功能引入日志函数执行时间统计执行函数前预备处理执行函数后清理功能权限校验等场景缓存

网友评论

      本文标题:程序执行时间-装饰器

      本文链接:https://www.haomeiwen.com/subject/sdeufxtx.html