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]
這種行爲的解釋是什麼?換句話說:爲什麼我能夠從全局範圍修改列表,但本地修改的字符串在全局範圍內保持不變?