所以我试着让易变性更好的进入我的大脑,我看到很多有经验的人有时挣扎。
我在这里做了一个小测试代码:
x = 1
def test():
x = 2
test()
print(x) #1
x = 1
def test():
global x
x = 2
test()
print(x) #2
x = [1]
def test():
x = [2]
test()
print(x) #[1]
x = [1]
def test():
global x
x = [2]
test()
print(x) # [2]
x = [1]
def test():
x[0] = 2
test()
print(x) #[2]
我对一切都很清楚,除了最后一个和第二个最后一个有什么区别。具体的规则是什么。我注意到可以更改对象的值,但不能更改对象类型本身,或者我理解错了吗?