我試圖防止一個實例從拋出異常,如果不爲實例中存在一個方法被調用的方法。我曾嘗試以下:防止被稱爲如果不正確使用__getattr__
class myClass(object):
def __init__(self):
pass
def __getattr__(self,name):
print "Warning - method {0} does not exist for this instance".format(name)
o = myClass()
var = o.someNonExistantFunction()
的問題是,我得到以下錯誤:
TypeError: 'NoneType' object is not callable
的兩件事情我想要做的肯定是:
- 返回
None
因爲我的代碼可以處理的變量被設置爲None
- 執行功能(打印一條警告消息)
什麼是做到這一點的乾淨的方式?
非常感謝!剛剛爲placeholder()添加了'* args,** kwargs'參數,以確保它可以使用參數處理不存在的方法(直到它被同行評審纔會出現) – chuckus 2012-01-11 02:04:36