美文网首页程序员
装饰器(一):记录程序运行时间

装饰器(一):记录程序运行时间

作者: 圣_狒司机 | 来源:发表于2018-04-02 00:07 被阅读279次

源代码

# author:莲师
import time,logging

def timmer(func):
    def wrapper(*args,**kwargs):
        print('programe strat running...')
        start = time.time()
        try:
            result = func(*args,**kwargs)
            end = time.time()
            runtime = end - start
            print('running %s s'%runtime)
            return result
        except:logging.error('programe running err!')
        finally: print('programe end running!\n')
    return wrapper

使用方法

另存为 timmmer.py ,使用时引用这个文件内的timmer类
比如:

import time,sys,logging
from timmer import timmer

@timmer
def cal(n):
    s = 0
    for i in range(1,n+1):s += i
    return s

def main ():
    try:print(cal(int(sys.argv[1])))
    except:log.error('please input int type!')

if __name__ == '__main__':
    log = logging.Logger(__name__)
    main()

在需要查看运行时间的函数前加上这个timmer语法糖

@timmer

在shell内输入命令

python cal.py 100000

会有:

programe strat running...
running 0.006545066833496094 s
programe end running!

5000050000

OK! 获取到了运行时间!装饰器还在一定程度上实现了程序本身的容错功能,就不再演示了。

相关文章

  • 2018-05-18

    关于装饰器记录程序运行时间以及记录运行次数的代码 import time # def set_fun(func):...

  • 装饰器

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

  • 装饰器(一):记录程序运行时间

    源代码 使用方法 另存为 timmmer.py ,使用时引用这个文件内的timmer类比如: 在需要查看运行时间的...

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

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

  • 装饰器(二):记录程序运行次数

    构造count装饰器,其中要点: 记录运行次数的counte是全局变量; 使用了logging日志库,用loggi...

  • 工作相关

    写一个run_time装饰器,专门用来记录程序的运行时间,写到swissgear 做一个命令行自动生成demo_c...

  • Python Decorator

    利用装饰器记录函数运行时间 list去空s=['A', '', 'B', None, 'C', ' ']s=...

  • python 时间装饰器

    1.实现一个打印当前时间的装饰器 2.函数运行总时间的装饰器

  • 装饰器与偏函数

    装饰器的概念 在讲解装饰器之前,先看一段简单的程序,如下所示。 运行结果如下图所示。 运行结果如下图所示。 在上述...

  • 装饰器

    一个打印日志的装饰器 一个实用的例子 计算代码运行时间的装饰器 带参数的装饰器

网友评论

    本文标题:装饰器(一):记录程序运行时间

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