扩充的赋值运算符具有全球意义

时间:2019-11-14 21:34:42

标签: python function numpy addition

我注意到增强加法赋值运算符(+ =)在函数中的行为异常。见下文:

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。)

显然,这不会给我造成任何问题(不再)-解决方案很简单。只是想了解为什么会这样。

谢谢!

0 个答案:

没有答案