Py学习  »  Python

Python中的易变性及其原因?

itsolidude • 5 年前 • 1505 次点击  

所以我试着让易变性更好的进入我的大脑,我看到很多有经验的人有时挣扎。

我在这里做了一个小测试代码:

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]

我对一切都很清楚,除了最后一个和第二个最后一个有什么区别。具体的规则是什么。我注意到可以更改对象的值,但不能更改对象类型本身,或者我理解错了吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55228
 
1505 次点击  
文章 [ 1 ]  |  最新文章 5 年前