【发布时间】:2018-01-01 13:11:33
【问题描述】:
我对以下代码的行为感到困惑:
data = [0,1,2,3,4,5]
class test():
def __init__(self,data):
self.data=data
self.data2=data
def main(self):
del self.data2[3]
test_var = test(data)
test_var.main()
print(test_var.data)
print(test_var.data2)
我认为应该是这样的:
[0,1,2,3,4,5]
[0,1,2,4,5]
我得到的是这样的:
[0,1,2,4,5]
[0,1,2,4,5]
为什么第二个列表中的元素在没有直接更改时会被删除?或者python是否以正常发生的方式处理属性?
那么我应该如何更改我想要的代码?
【问题讨论】:
-
您将相同的
data引用分配给不同的变量。输出是预期的。
标签: python python-3.x list object del