0
我正在运行python中的行为,我确定这很容易解释,但对我来说仍然很奇怪。我可以运行,试图“改变”的全局变量,但没有成功,因为创建的变量是本地的一个功能:重新分配/更改全局变量时的变量范围
x = 'n'
def make_up(letter):
return letter.upper()
print x
>>> 'n'
print make_up(x)
>>> 'N'
print x
>>> 'n'
但是,如果我跑,我修改从全球访问列表的功能范围内,全局变量发生变化:
x = [0,1]
def rem(lst):
return lst.pop(0)
print x
>>> [0,1]
print rem(x)
>>> 0
print x
>>> [1]
这种行为的解释是什么?换句话说:为什么我能够从全局范围修改列表,但本地修改的字符串在全局范围内保持不变?