只是下面的一个简单的代码:
import numpy as np
x=np.array([1,2])
y=[1,2]
L=1
def set_L(x,y,L):
x[0]+=1
y[0]+=1
L+=1
print(id(x))
print(id(y))
print(id(L))
我发现数组 x 和列表 y 在函数 set_L(( 中是相同的,这是否意味着默认情况下列表和数组是全局变量?但是变量 L 在函数 set_L(( 中不是全局的。我很困惑为什么Python是这样设计的?
x[0]+=1 和 y[0]+=1 只是修改现有对象,而 L+=1 是一个赋值并创建一个新的本地引用。请参阅 https://stackoverflow.com/a/11867500/7662112