下面只是一个简单的代码:
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的设计是这样的?
答案 0 :(得分:0)
x [0] + = 1且y [0] + = 1只修改现有对象,而L + = 1是赋值并创建新的本地引用。见https://stackoverflow.com/a/11867500/7662112