面试题之中的一个。
写一个装饰器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
>>>