我注意到增强加法赋值运算符(+ =)在函数中的行为异常。见下文:
import numpy as np
def f(array):
array += 1
return array
x = np.ones(5)
print(x)
y = f(x)
print(x)
这将输出:
[ 1. 1. 1. 1. 1.]
[ 2. 2. 2. 2. 2.]
因此数组x
在函数中被修改。谁能解释一下?如果我使用的是x += 1
而不是x = x + 1
,则行为符合预期(即函数内的更改不会影响其外部的数组x
。)
显然,这不会给我造成任何问题(不再)-解决方案很简单。只是想了解为什么会这样。
谢谢!