我經常寫下面的代碼:蟒蛇3:日誌功能簽名問題
print('object', 'moved', 'from =', object.location, 'dest =', new_location)
print('object', 'created', 'at =', object.location, 'status =', status)
等。
我正打算用功能log
,以取代所有這些:
def log(self, action, **details):
print('object', action, end = '')
for var, value in state.items():
print(var, '=', value, end = '')
print()
這幾乎作品 - 除了兩個問題。首先,我無法控制輸出的順序,這對我很重要。當然,details
只是一個字典,所以參數的順序會丟失。其次,我不能使用任何語言關鍵字,例如from
作爲關鍵字參數的名稱。
有沒有解決方案可以避免不必要的冗長,但不會遇到這些問題?
我想使用log
函數的原因是我可能想要禁用/啓用它或在單個位置更改格式。
我絕對推薦檢查日誌模塊。 Vinay寫了一個很好的方法,希望能夠使它更加容易理解:http://docs.python.org/3.2/howto/logging.html – ncoghlan 2011-02-04 14:43:19