我嘗試了用於測試目的動態屬性分配和發現下列行爲:動態屬性分配
>>> class Foo(object): pass
...
>>> bar = Spam()
>>> bar.a = 1
>>> spam = object()
>>> spam.a = 2
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'object' object has no attribute 'a'
爲什麼是第一個版本的派生類合法的,但object
不是第二直接使用?這似乎有點奇怪,因爲派生並沒有改變任何與變量賦值如何處理顯然有關的事情。
此問題可能有所幫助:http://stackoverflow.com/q/1285269/1015178 – 2013-03-08 23:17:50
同意。我沒有仔細檢查一個存在的問題。 – phineas 2013-03-08 23:22:37