面试题之一。
写一个装饰器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 >>>
参考文档:九步学习装饰器
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-26 08:34:45