我們使用另一個內部團隊提供的庫。 (搖搖欲墜的比喻現在開始)Python:將所有函數包裝在一個庫中
from externalTeam import dataCreator
datacreator.createPizza()
datacreator.createBurger()
datacreator.createHotDog()
最近我們發現他們正在採取超過一分鐘在某些情況下執行一個方法。爲了調試這個,我必須進入我們的代碼並在每次調用此方法時添加超時。
import time
from externalTeam import dataCreator
start = time.clock()
datacreator.createPizza()
stop = time.clock()
print "It took %s seconds to perform createPizza" % (str(stop-start))
現在回想起來,那是因爲我們調用createPizza所有的地方,我們不控制createPizza本身(比喻開始打破此處略)。我寧願只在一個地方調用createPizza,並且能夠在其中添加計時器。我首先想到的是創建一個包裝他們所有的方法在我自己的包裝類。這是乾的對面,雖然,他們隨時添加其他方法我不得不更新我們的庫來包裝,以及:
import time
from externalTeam import dataCreator
def createPizza(self):
start = time.clock()
datacreator.createPizza()
stop = time.clock()
print "It took %s seconds to perform createPizza" % (str(stop-start))
def createBurger(self):
start = time.clock()
datacreator.createPizza()
stop = time.clock()
print "It took %s seconds to perform createBurger" % (str(stop-start))
def createHotDog(self):
start = time.clock()
datacreator.createPizza()
stop = time.clock()
print "It took %s seconds to perform createHotDog" % (str(stop-start))
我想是始終執行的幾行代碼周圍的每一個方法函數是從dataCreator調用的。必須通過一箇中間類來做到這一點,它的方法可以被動態地定義 - 或者說左邊沒有定義,對嗎?
看看裝修。 – utdemir
我們是在談論函數還是類的方法? – tjollans
我知道裝修。我裝飾什麼? createPizza和createBurger是它們的功能。 – Nathan