Python函数中的全局变量详解
作者:站长在线 发布时间:2022-08-05 13:58:34
标签:python,函数,全局变量
1、什么是全局变量?
在Python中,全局变量指的是可以作用于函数内部和外部的变量。
在这里有两种情况:在函数的外部定义和内部定义添加global关键词变成全局变量。
2、在函数外部定义的变量是全局变量。
假设一个变量在函数的外部定义,那么这个函数就可以在函数的内部访问,也可以在函数的外部的访问。
示例:定义一个全局变量b,然后定义一个函数a,最后在该函数的内部和外部输出全局变量m的值,代码如下:
b = '我爱Python,我在学习Python!' # 定义全局变量
def a(): # 定义函数
print('函数内部全局变量b=',b) # 在函数内部输出全局变量
a()
print('函数外部全局变量b=',b) # 在函数外部输出全局变量
运行结果如下:
函数内部全局变量b= 我爱Python,我在学习Python!
函数外部全局变量b= 我爱Python,我在学习Python!
>>>
3、在函数内部定义中添加global关键词后变成全局变量。
在Python中,内部定义的函数中,添加关键词global后,改变量就变成了全局变量。在函数的外部也可以访问到该变量,同时还可以在函数的内部进行修改。
示例:定义相同名称不同内容的全局变量和局部变量b,并输出它们的值:
b = '我爱Python,我在学习Python!' # 定义全局变量
print('函数外部全局变量b=',b) # 在函数外部输出全局变量
def a(): # 定义函数
b = '人生苦短,我用Pyhon!' # 定义局部变量
print('函数内部局部变量b=',b) # 在函数内部输出全局变量
a() # 调用函数
print('函数外部全局变量b=',b) # 在函数外部输出全局变量
运行结果如下:
函数外部全局变量b= 我爱Python,我在学习Python!
函数内部局部变量b= 人生苦短,我用Pyhon!
函数外部全局变量b= 我爱Python,我在学习Python!
>>>
从上面的结果可以看出,内部变量(局部变量)可以和外部变量(全局变量)重名,不影响全局变量的值。
当然在函数内部变量前面添加关键字global,就变成了全局变量了,代码如下:
b = '我爱Python,我在学习Python!' # 定义全局变量
print('函数外部全局变量b=',b) # 在函数外部输出全局变量
def a(): # 定义函数
global b # 添加global关键字
b = '人生苦短,我用Pyhon!' # 定义局部变量
print('函数内部全局变量b=',b) # 在函数内部输出全局变量
a() # 调用函数
print('函数外部全局变量b=',b) # 在函数外部输出全局变量
运行结果如下:
函数外部全局变量b= 我爱Python,我在学习Python!
函数内部全局变量b= 人生苦短,我用Pyhon!
函数外部全局变量b= 人生苦短,我用Pyhon!
>>>
从上面的结果可以看出,在函数的内部也可以修改全局变量的值。
来源:https://blog.51cto.com/olzz/4906927


猜你喜欢
- ProblemPython中str类自带的find、index方法可以返回第一个匹配的子串的位置,但是如果实际使用中需要查找第2个甚至第n个
- 1. 新建文件夹if not os.path.exists(feature_dir): os.makedirs(f
- 本文实例讲述了Python自动发送邮件的方法。分享给大家供大家参考,具体如下:python发邮件需要掌握两个模块的用法,smtplib和em
- 一.Pygame程序基本搭建过程Pygame搭建游戏窗口主要为如下几步1.初始化化程序在使用Pygame编程之前,我们要对程序进行初始化,代
- mybatis通过将sql配置xml文件中,通过解析xml动态标签来实现动态sql如下样例 xml文件<?xml version =
- 源码下载:http://xiazai.aspxhome.com/201509/yuanma/drag_sort1(aspxhome.com)
- 1.场景将URL动态生成二维码前端展示(微信支付等,)--》1.静态文件路径访问返回URL_name,(a标签,src 静态路由访问)2.流
- 每次写完的东西就忘了,下次用时还要重查资料重新写,这是今天写的一段测试代码,保留下来,记录给自已,同时分享给大家。目标:把下边的这个上传文件
- 1.创建虚拟环境首先创建一个新文件夹在PyCharm终端中切换到这个文件夹,输入 python -m venv 环境名 创建虚拟环境&nbs
- librosa是处理音频库里的opencv,使用python脚本研究音频,先安装三方库librosa。如下通过清华镜像源安装librosa;
- 1 map使用1.1 map定义map是一种无序的集合,对应的key (索引)会对应一个value(值),所以这个结构也称为关联数组或字典。
- element换肤所有主题色和基础色均可自主配置1.element-ui官方提供的动态切换主题方法换肤 但此方法只可修改$&ndas
- //获取元素的样式值。 function getStyle(elem,name){ if(elem.style[name]){ return
- 每天都要记得健康打卡尊敬的老师,我忘了这次的健康打卡,反思的时候我想了很多东西,反省了很多事情,自己也很懊悔,触犯了学校的规定,深刻认识到自
- 一、下载MySQL msi版本下载地址:https://dev.mysql.com/downloads/mysql/二、安装直接右击点击安装
- 笔者今天就谈谈自己对这两种操作模式的理解,并且给出一些可行的建议,跟大家一起来提高Oracle数据库的安全性。 一、非归档模式的利与弊。 非
- 不过不得不说,datetime模块也有一些限制。 例如,当我们处理时区时,通常会显得短缺。有时,我们不得不引入一些第三方库作为补充。 此外,
- 一、报错error connecting to master 'x@x.x.x.x:x' - retry-time: 60&
- 本文实例为大家分享了vue数据请求拦截的具体代码,供大家参考,具体内容如下在src文件夹下创建utils文件夹同时在文件夹下创建reques
- 假设我们要添加一个我们自己的Middleware,用来记录每次请求的日志下面就是一个符合规范的Middleware, 构造函数中接受一个WS