【发布时间】:2011-11-24 19:13:12
【问题描述】:
我是 python 新手,了解到类属性就像 C++ 中的静态数据成员。但是,我在尝试以下代码后感到困惑:
>>> class Foo:
... a=1
...
>>> f1=Foo();
>>> f2=Foo()
>>> f1.a
1
>>> f1.a=5
>>> f1.a
5
>>> f2.a
1
f2.a 不应该也等于 5 吗?
如果 a 被定义为列表而不是整数,则行为是预期的:
>>> class Foo:
... a=[]
...
>>> f1=Foo();
>>> f2=Foo()
>>> f1.a
[]
>>> f1.a.append(5)
>>> f1.a
[5]
>>> f2.a
[5]
我看了 Python: Difference between class and instance attributes,但它没有回答我的问题。
谁能解释为什么会有差异?谢谢
【问题讨论】:
标签: python