奇怪的事情发生了今天,当我做这样的事情:蟒蛇通过引用传递
a = np.array([1, 2, 3])
b = a
b[0] = 0
print a, b
然后是价值似乎被引用传递!答案就变成了:
result: [0 2 3] [0 2 3]
但通常我想在Python变量是按值传递,就像这样:
a = np.array([1, 2, 3])
b = a
b = np.array([0, 2, 3])
print a, b
然后答案就:
result: [1 2 3] [0 2 3]
但为何那发生?我如何确定变量是通过引用还是值传递?有人说这是因为可变对象,但我还是不太明白。那么你能为我解释一下吗?非常感谢!
对你而言有什么奇怪的? – Vallentin
可能重复[如何通过引用传递变量?](http://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference) – TemporalWolf
作业**从不* *在Python中创建一个副本。这总是如何工作。你的第二个例子是*和你的第一个完全一样*。 –