python中的全局变量与局部变量

文章介绍了Python中局部变量和全局变量的区别及使用规则。局部变量只在函数内部有效,而全局变量在整个模块中都可访问。在函数内部修改全局变量需使用`global`关键字,否则会创建新的局部变量。文章强调了不建议在函数内修改全局变量以保持代码的可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,局部变量与全局变量

1,定义

局部变量:就是在函数体内的变量,在python中冒号“:”后面的变量都是局部变量,当然局部与全局也是一个相对的概念。比如出现函数嵌套的情况。

全局变量:就是在模块中所有函数都可以调用的变量,一般在函数体外被定义。

2,使用过程

函数内的局部变量,在函数体外是不可以使用的,函数内的变量就是局部变量,只在函数体内生效。

例如,图1的discount(price,rate)函数,两个形式参数price和rate,还有final_price都是函数的局部变量。

如果在函数体外使用就会出错。

图1

全局变量,比如图2的old_price,rate和new_price都是全局变量。因此可以在函数体内访问他们。在python中,可以肆无忌惮地在函数体内部使用全局变量,但是如果在函数体内修改全局变量则会出错。

图2

图3

其实,当在函数体内部调用全局变量时,是可以正常使用的,

但是当在函数体内部修改全局变量时,python是在函数体内部新创建了一个同名的局部变量,所以当我们在函数体内部打印该变量时,是修改后的值,但是当在程序外部打印正常的全局变量时,发现值并没有被修改。正如小甲鱼解释的一样。

如果一定要在函数体内部修改全局变量,可以在变量名前加 global关键字,如下所示

3,注意事项

注意:python出现这种现象是一种程序的保护机制,因为全局变量在很多地方都会使用,不建议在函数体内部修改全局变量,如果有这一类的操作,会导致程序很难维护。就像这里小甲鱼说的一样。

如果你已经知道在函数中修改全局变量可能会导致可读性变差、出现莫名其妙的BUG、代码的维护成本成倍提高,但还是要坚持这么做,可以用global关键字来实现。

但是,如果遇到这种情况,思考一下,为什么要这么做,能不能把变量的位置挪到函数内部,让它变成局部变量。如果可以,就不要有 使用全局变量然后再函数里修改的操作。

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

优快云大礼包:全网最全《全套Python学习资料》免费分享🎁

如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

😝朋友们如果有需要的话,可以V扫描下方二维码免费领取🆓

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习路线

image-20230619144606466

python学习路线图1

二、Python基础学习
1. 开发工具

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

图片

四、数据分析全套资源

在这里插入图片描述

五、Python面试集锦
1. 面试资料

在这里插入图片描述

在这里插入图片描述

2. 简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值