我是python的新手,并且知道类属性就像C++中的静态数据成员一样.但是,在尝试以下代码后我感到困惑:
>>> class Foo:
... a=1
...
>>> f1=Foo();
>>> f2=Foo()
>>> f1.a
1
>>> f1.a=5
>>> f1.a
5
>>> f2.a
1
Run Code Online (Sandbox Code Playgroud)
f2.a也不应该等于5吗?
如果a被定义为列表而不是整数,则行为是预期的:
>>> class Foo:
... a=[]
...
>>> f1=Foo();
>>> f2=Foo()
>>> f1.a
[]
>>> f1.a.append(5)
>>> f1.a
[5]
>>> f2.a
[5]
Run Code Online (Sandbox Code Playgroud)
我看了 Python:类和实例属性之间的区别,但它没有回答我的问题.
谁能解释为什么会有区别?谢谢
python ×1