希望我能正确地提出这个问题。我有代码示例:
class myc:
a = ['a', 'b']
def f1(self):
b = myc.a
b.extend(['c', 'd'])
return b
def f2(self):
b = myc.a
b.extend(['f','g'])
return b
cvar = myc()
print cvar.f1()
print cvar.f2()
print cvar.f1()
我得到了输出:
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 'f', 'g']
['a', 'b', 'c', 'd', 'f', 'g', 'c', 'd']
我想要的是" a"是静止的。
我的理解是因为"绑定",当我做" b = myc.a"然后我做了" b.extend ...",我实际上正在影响myc.a.
我想要的是复制myc.a并将其存储在b中,这样我在b上的操作就不会影响myc.a.
我显然缺少一些超出绑定的基本Python概念。
我想要的输出是:
['a', 'b', 'c', 'd']
['a', 'b', 'f', 'g']
['a', 'b', 'c', 'd']