python中全局变量和局部变量的区别_python小白问题 关于局部变量和全局变量

本文深入探讨Python中的全局变量和局部变量,特别是在函数内部对可变对象如列表的修改。讲解了全局变量在不同作用域的赋值导致的对象分离,以及对列表进行操作如何影响全局变量的值。通过实例解析,帮助读者理解Python变量的生命周期和内存管理。
摘要由CSDN通过智能技术生成

看了下采纳答案,我觉得还是没说到点子上面。

首先nums变量被定义为了全局变量,也就说在这个".py"文件里面,所有类、函数都可以使用它。但是所有变量也是一个对象,而对象分为可变和不可变。而列表是可变对象,也就是说可以变更。那么什么是可变对象?就是那些可以对对象操作,而不影响在内存中的生灭。入x="234",如果你再赋值,x="111"。其实两个x已经是两个对象了,只是覆盖了而已,即x = x + "123",x也是一个新对象。

如果是列表,x = [1,2,3],现在对它操作,x.remove(1),那么x对象还是x对象,只是对象的值有改变

第一段代码:就是重新赋值,在不同的作用域,nums赋值了一遍,这样全局变量nums和nums_chang函数里面的nums变量就不再是一个对象,他们是不同的,因此你打印的时候出现了不同的值,此时nums_chang函数里面的nums变量已经是一个局部变量,只给这个函数使用

第二段代码:nums是个列表,是可变对象,因此对列表的操作,不影响这个对象,因此这个对象还是全局中的那个,函数和外面都是用的全局变量,因此你修改了之后,全局变量的值也跟着修改了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值