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 >>>
參考文档:九步学习装饰器