python 写一个计算运行时间的装饰器

本文介绍了一个使用Python装饰器实现的功能,该功能能够监控被装饰函数的执行时间,并根据执行时间的长短输出不同的提示信息。通过具体示例展示了如何定义和使用装饰器来完成这一任务。

面试题之中的一个。

写一个装饰器wraps,它接收一个參数t。假设函数运行时间超过1秒,输出“bad”,否则输出“goods”。


首先,计算函数的运行时间:

import time


start = time.clock()
for i in range(1000000):
    pass
end = time.clock()


print "cost time = %f s" % (end-start)
结果:

>>> 
cost time = 0.092749 s
>>> 


然后:

import time


def warps(t):
    def deco(func):
        def _deco(*args,**kwargs):
            start = time.clock()
            func(*args,**kwargs)
            end = time.clock()
            if end - start > t:
                print 'bad'
            else:
                print 'goods'
        return _deco
    return deco


@warps(10)
def myfunc(*args,**kwargs):
    for i in range(100000):
        pass
    
myfunc()  

结果:

>>> 
goods
>>> 







參考文档:九步学习装饰器



转载于:https://www.cnblogs.com/jzdwajue/p/7396757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值