我对Python 3.3.3和NumPy不了解的东西:
from numpy import *
x1 = zeros(1)
x2 = x1
x1+=1
事实证明,这使得x1和x2变量[1],我不明白。如果你改为x1 = x1 + 1,那么我得x1为[1]而x2为[0],这就是我所追求的。
答案 0 :(得分:5)
x2 = x1
使变量x2
和x1
都引用同一个对象。
x1+=1
更改了引用x1
(和x2
)下的对象。
相反,如果您执行x1=x1+1
,则创建新对象(x1+1
的结果),并仅将结果分配给x1
,而{ {1}}保持不变,并引用原始对象。
顺便说一句,这与NumPy无关 - 这是参考工作的一般方式的结果。