python 計算執行時間的裝飾器

寫一個裝飾器wraps,它接收一個參數t,如果函數執行時間超過1秒,輸出“bad”,否則輸出“goods”。


首先,計算函數的執行時間:

  1. import time
  2. start = time.clock()
  3. for i in range(1000000):
  4.     pass
  5. end = time.clock()
  6. print "cost time = %f s" % (end-start)
結果:
  1. >>>
  2. cost time = 0.092749 s
  3. >>>


然後:

  1. import time
  2. def warps(t):
  3.     def deco(func):
  4.         def _deco(*args,**kwargs):
  5.             start = time.clock()
  6.             func(*args,**kwargs)
  7.             end = time.clock()
  8.             if end - start > t:
  9.                 print 'bad'
  10.             else:
  11.                 print 'goods'
  12.         return _deco
  13.     return deco
  14. @warps(10)
  15. def myfunc(*args,**kwargs):
  16.     for i in range(100000):
  17.         pass
  18.     
  19. myfunc()

結果:

  1. >>>
  2. goods
  3. >>>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章