我注意到 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 将走向何方?