7
我想知道是否有可能動態地添加字段到對象。舉例來說,我希望能夠加入這樣的:Python:動態添加字段到對象
user = object()
user.first_name = 'John'
user.last_name = 'Smith'
當我執行的是Python命令行解釋器,我得到:
AttributeError: 'object' object has no attribute 'first_name'
任何想法?
謝謝你,爲我工作。我有兩個問題1)'pass'關鍵字在這裏意味着什麼? 2)如果我的代碼中有Object()的另一個實例obj2,obj.x是否會創建obj2.x(帶有一些未定義的值)? – Rafid 2010-12-14 19:39:41
1)關於'pass':http://docs.python.org/tutorial/controlflow.html#pass-statements 2)不,當你做'obj.x = 5'時,你只需要添加'x'屬性到Object的單個實例。如果你想要所有的'Object'實例共享x,你必須做'Object.x = 5'。 – gruszczy 2010-12-14 19:43:00
在Python中沒有未定義的值 - 它最接近的是None。以gruszczy的方式創建的對象沒有任何一種「原型」;您可以隨意添加和刪除屬性,並且不會影響Object類的任何其他實例。 – 2010-12-14 19:52:41