Python中的全局变量

article/2025/11/6 1:20:21

在本文章中,我们来讨论一下python中的全局变量,我们将学习如何定义全局变量,然后如何在函数中访问它们,以及如何在函数中修改全局变量的值。

全局变量:

python的代码结构一般按照shebang、import模块、全局变量、函数定义、执行代码的顺序进行编写,可以看出全局变量的定义处于比较靠前的位置,这样就避免了因为全局变量定义靠后,但python解释器逐行解释,以至于前面的代码无法识别局部变量的问题。

全局变量的作用域:

全局变量定义在函数的外部,在函数内部定义的变量称为局部变量,python程序中的所有部分都可以访问全局变量,局部变量只能在本函数内可用,并且在函数中,变量的使用顺序是:局部变量 > 全局变量,也就是说,如果局部变量和全局变量都用a表示,那么调用a时,函数会优先调用局部变量。

全局变量实例:

我们按照文章开头讲解的代码结构顺序,展示一个简单的全局变量的实例

输出:

变量"gl_result"是在函数外部定义的,因此,他是一个全局变量。

在函数内部对全局变量赋值

如果我们在函数内部对全局变量进行赋值操作,那么全局变量的值会改变吗?

输出:

可以看出,函数内部的gl_result的值已经被我们修改成100了,但是函数外部的变量值仍为1,说明通过调用函数,我们没能修改到全局变量的值,只能修改函数内部的值,这又是为什么呢?

因为,如果在函数内部定义了一个与全局变量相同名称的变量,那么函数就会认为这是在创建一个与全局变量名称相同的变量,所以我们实际修改到的值只是函数中的局部变量的值,并非我们想要修改的全局变量。我们通过pycharm的提示也可以看到

有一个shadows name在函数外部,在PyCharm中,函数内部的变量,如果和函数被调用的外部的变量一样的话,就会被叫做shadows name,不容易被觉察到。

那么我们就不能在函数内部修改全局变量的值吗?当然不是,在python的函数中可以通过global关键字,调用并修改全局变量的值!

在函数内部修改全局变量的值

我们只需要在需要使用全局变量的前一行代码加上global + 全局变量,就可以随意修改全局变量的值啦!

可以看出,pycharm这次就没再提示shadows name了,因为我们从头到尾都是在使用同一个变量,即全局变量。所以我们一定要牢记,想要对全局变量进行修改时,在函数内部一定要加上global关键字,不然函数就会自动创建一个局部变量,使人产生误解。

Tips:

1、注意查看pycharm的warning,有时候可以帮助我们避免bug

2、在创建全局变量是按照gl_ + 全局变量 或者 global_ + 全局变量的命名方式,可以帮助我们更好地区分全局变量和局部变量

有错误之处感谢指正,欢迎交流,一起学习!


http://chatgpt.dhexx.cn/article/lkfN6JSf.shtml

相关文章

Python3:变量的定义

1.简介 学习一门语言从当前的变量定义开始,来源于菜鸟教程:菜鸟教程中变量的定义 2.定义数字类型的变量 # 2.定义数字类型的变量 intNum1 # 整数默认为int floatNum1.1 # 小数都被定义为float complexNum1.1j # 使用j为结尾的变量表示复数 p…

Python 变量,定义变量,变量类型

变量的定义.py: # 1. 定义一个变量记录 QQ 号码。 定义变量必须要有 赋值;没有表示使用变量,会报未定义的错误 qq_number "1234567"# 2. 定义一个变量记录 QQ 密码 qq_password "123"# 如果希望通过解释器的方式,输出变量的内容…

Python定义全局变量的用法

全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序。 和C语言一样,Python也具有全局变量,其定义全局变量的用法…

Python变量的定义和使用

定义:变量就是计算机内存中存储某些数据的位置的名称 形象理解变量就是一个存放东西的容器,该容器的名字就叫做变量,容器存放的东西就是变量的值 变量的组成: 标识:标识对象所储存的内存地址,使用内置函数i…

Python中变量的定义和使用规则

一、如何理解Python中的变量 在解释变量这个东东之前,我先给大家看一组代码,如下图: 上图里面,a作为变量,每次存放的数据和数据类型都不同。看到这里大部分人应该明白了,变量就是随时都可以改变的量&#…

python定义全局变量

、 Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。 例子1 x 1 def func(): x 2 func() print(x) 输出:1 在func函数中并未在x前面加global,所以func函数无法将x赋为2&…

python中变量的定义、命名

变量 1.什么是变量? 变量名只有在第一次出现才是定义变量(变量名再次出现,不是定义变量,而是直接使用之前定义的变量) 2.变量的定义 在 python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建 等号()用来给变量赋值 左边是一个变量名 右边是存储在变量中…

【Python 08】变量的定义和使用

1. 变量的定义 首先,Python中的定义变量超级方便,直接上代码。 name 玛利亚 print(name) # 定义了一个name的变量 print(标识, id(name)) # 获取name变量的内存地址 print(类型, type(name)) # 获取name变量的数据类型 print(值, name) # 打印输出…

Python定义变量、基本数据类型、print()函数、复杂数据类型

目录 1. 定义变量 2. 基本数据类型 3. 输出函数print() 4. 复杂数据类型 1. 定义变量 变量是一个抽象的概念,是计算机语言中用来储存计算结果或表示值的抽象概念。 python中定义变量是不用定义数据类型,数据类型由值决定。 每个变量在使用之前必须…

十.python中变量的定义

变量:可变的量,区别于常量,常量为固定不可变的量 变量的定义方式:变量名value 例:a1 多个变量的命名格式:变量名1,变量名2value1,value2 例:a,b1,2 删除变量名格式: del 变量…

微信小程序开发提示map未定义

在使用微信小程序开发时,有时会遇到直接用this.state.键进行遍历的时候,提示map未定义 直接使用会报错 解决改提示的方法可以使用解构赋值给bannerlist先定义一个空数组

小程序用到的map集合,造的map集合,通过key获取值value数组。

在做分类功能,由点击侧边栏的商品标题来展示里面的商品的这种功能。---- 由于后端返回的数据,一下子都直接全部返回,我这边就得做判断,点击哪一个侧边商品id的时候,来对应拿到id里面的同一个返回回来的数据。用到了map…

微信小程序实践总结

【1】module.exports、exports、export、import、export default使用与区别 ① module.exports与exports module.exports和exports 是commonJs的语法,大家熟知的node就是基于CommonJs语法设计的,node将每个文件视为一个拥有独立作用域链的模块&#xf…

微信小程序学习

微信小程序学习 1. 小程序与普通网页开发的区别2. 小程序项目的构成3. WXML模板4. WXSS样式5. JS逻辑交互6. 小程序的宿主环境(通信模型、运行机制)7. 组件8. API9.小程序项目的协同工作和发布10. WXML模板语法1. 数据绑定2. 事件绑定3. 条件渲染4. 列表…

微信小程序全栈实战(二):列表循环渲染

文章目录 1.需求概念2.后台开发3.前端开发1.微信页面2.JS3.请求 1.需求概念 我们需要循环的是这数据 2.后台开发 这里为了方便,直接写一起 RestController Api(tags"Project模块") //模块名称 CrossOrigin //开启跨域 public class ProjectController …

微信小程序资料整理

一、初识微信小程序 1、什么是微信小程序 Ⅰ-小程序历史 1. 2017 年度百度百科十大热词之一 2. 微信小程序,简称小程序,英文名 Mini Program,是一种不需要下载安装即可使用的应用 3. 小程序刚发布的时候要求压缩包的体积不能大于 1M,&…

微信小程序地图添加marker

本文章是在uniapp开发的微信小程序中使用腾讯地图,在地图上添加标记 // 添加地图标记的方法 addMarkers(driverList) { //driverList为需要添加到地图标记上的司机数组 const markers [] //地图标记数组 driverList.forEach(…

前端的几种循环,map forEach等

今天给大家分享一些前端的基础知识,循环 forEach循环 let arr [node,java,php,go];// 一般俩个参数 可以加上原数组 val每一项,index索引,arr原数组。arr.forEach((val,index,arr) > {console.log(val,index,arr)})map循环 let …

小程序的城市名称,双层循环怎么实现,

小程序中的定位工作的城市名称&#xff0c; 引入map.js,需要先暴露导出&#xff0c; 在使用的js中引入 put 这样城市的名字就可以实现了,注意点就是第二次循环的时候&#xff0c;不能用原有的名字&#xff0c;需要自己设置&#xff0c;新的名字&#xff0c; <view class&…

微信小程序如何循环控制一行显示几个wx:for

正如上图所显示的一样&#xff0c;我们改如何控制一行显示几个图形呢&#xff1f; 首先第一种方法&#xff0c;数量少的可以自己一行一行的写&#xff0c;但是当数据很多的时候呢&#xff1f; 这时候就需要我们区使用循环进行代码的编写。废话不多数&#xff0c;直接写代码。 .…