python中的类实例列表

时间:2017-10-18 06:08:00

标签: python deep-copy

我是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?

为什么深层副本不起作用?

1 个答案:

答案 0 :(得分:2)

只有一个(Java / C ++意义上的static)c1和c2变量的副本。阅读https://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide并在代码中添加更多self来修复它。