【发布时间】:2016-06-03 14:24:52
【问题描述】:
在使用 python 时,我注意到一个非常奇怪的行为,它将 2 个设置相等的变量绑定到相同的更改,我想知道是否有人对此行为有解释,以及是否有比我更好的解决方案它。
例如,我有一个名为 schema1 的数组。后来我需要用一组新的变量扩展 schema1,但我不能弄乱原始数组,所以我通过将它设置为 schema1 来创建 schema2,如下所示:
from someFileICreated import SomeClass
schema1 = SomeClass.SomeSchema
假设schema1有数组[a, b, c],那么I:
schema2 = schema1
schema2.append(d, e, f)
现在,schema2 应该有 [a, b, c, d, e, f] 但是,由于某种原因,schema1 也有 [a, b, c, d, e, f]
我不明白这种行为,所以如果你有一个很好的解释。就解决方案而言,这将起作用,但我想知道是否有另一种更好的方法可以避免循环。
我没有设置 schema2 = schema1,而是这样做:
schema2 = []
for x in schema1:
schema2.append(x)
【问题讨论】:
-
Python 变量是对对象的引用;您有一个具有多个引用的对象。