社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python中的易变性及其原因?

itsolidude • 5 年前 • 1482 次点击  

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

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

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
 
1482 次点击  
文章 [ 1 ]  |  最新文章 5 年前