我應該在班級中重新定義什麼特殊方法(s?),以便它處理AttributeError
的例外情況並在這些情況下返回特殊值?Python中的哪些特殊方法處理AttributeError?
例如,
>>> class MySpecialObject(AttributeErrorHandlingClass):
a = 5
b = 9
pass
>>>
>>> obj = MySpecialObject()
>>>
>>> obj.nonexistent
'special value'
>>> obj.a
5
>>> obj.b
9
我用Google搜索的答案,但無法找到它。
注意'pass'這裏是不必要的。 – 2010-02-28 22:25:20
歸因於'a'和'b'是您在實例'obj'上訪問的類屬性。這沒有什麼不妥,但這是不尋常的。你知道如何定義實例屬性嗎? – 2010-02-28 22:26:19
@voyager,在您的編輯中,您發明了'AttributeErrorHandlingClass'作爲獲取回退屬性值的機制。這可能不是在特定班級中獲得此行爲的正確方法。 – 2010-02-28 22:27:59