我是python的新手,更习惯于C ++。我想创建一个实例列表并执行以下操作:
from copy import deepcopy
class C:
c1=""
c2=""
Cs=[]
C.c1="Hello"
C.c2="World"
Cs.append(deepcopy(C))
C.c1="Why"
C.c2="this?"
Cs.append(deepcopy(C))
for c in Cs:
print (c.c1, c.c2)
我期待以下输出:
Hello World
Why this?
但得到了:
Why this?
Why this?
为什么深层副本不起作用?
答案 0 :(得分:2)
只有一个(Java / C ++意义上的static
)c1和c2变量的副本。阅读https://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide并在代码中添加更多self
来修复它。