list和array在python3.6中默认是全局的?

时间:2018-04-16 07:07:15

标签: python arrays list numpy global-variables

下面只是一个简单的代码:

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的设计是这样的?

1 个答案:

答案 0 :(得分:0)

x [0] + = 1且y [0] + = 1只修改现有对象,而L + = 1是赋值并创建新的本地引用。见https://stackoverflow.com/a/11867500/7662112