寫一個裝飾器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
- def myfunc(*args,**kwargs):
- for i in range(100000):
- pass
- myfunc()
結果:
- goods