我注意到python不會讓你添加一個類的實例作爲類定義的靜態成員。自己類型的python靜態字段
>>> class Foo:
... A = Foo()
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in Foo
NameError: name 'Foo' is not defined
但以下兩種工作:
>>> class Foo:
... pass
...
>>> class Foo:
... A = Foo()
...
>>> Foo.A
<__main__.Foo instance at 0x100854440>
或
>>> class Foo:
... pass
...
>>> Foo.A = Foo()
>>>
>>> Foo.A
<__main__.Foo instance at 0x105843440>
我無法找到任何啓發的代碼示例或解釋。爲什麼python以不同的方式處理第一個案例? A在以後兩個案例中的每一個案例中都有哪些?