我有一个非常奇怪的问题。这是示例代码:
class SomeClass(object):
a = []
b = []
def __init__(self, *args, **kwargs):
self.a = [(1,2), (3,4)]
self.b = self.a
self.a.append((5,6))
print self.b
SomeClass()
打印输出 [(1, 2), (3, 4), (5, 6)] ,但是为什么,为什么结果不是 [(1,2), (3,4)] ?
你知道我怎样才能在 self.b 中拥有 self.a 的旧值吗?
谢谢你!
正如许多人已经提到的那样,你最终会得到two参考文献关于same列表。通过一个引用修改列表,另一个引用只需修改the list.
如果需要的话,下面是一个让事情变得更清楚的说明:
-
步骤“A”就在之后
self.a = [(1,2), (3,4)]
-
步骤“A”就在之后
self.b = self.a
-
步骤“C”就在之后
self.a.append((5,6))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)