这是我的代码
import numpy as np
def f(x):
x += 3
return x
x_initial = np.zeros(3)
print(x_initial)
print(f(x_initial))
print(x_initial)
它返回:
[ 0. 0. 0.]
[ 3. 3. 3.]
[ 3. 3. 3.]
好像' x_initial'是一个全局变量。为什么呢?
答案 0 :(得分:2)
x_initial
是一个可变对象。将其传递给函数f()
并修改它将修改对象。它就像你将一个列表传递给一个函数并修改它一样:
def f(l):
l.append('something extra')
l = []
f(l)
print(l)
f(l)
print(l)
输出:
['something extra'] ['something extra', 'something extra']