Python中的全局变量如何理解


Posted in Python onJune 04, 2020

Python是一种面向对象的开发语言,在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明的全局变量才能使用。

首先应该说明的是需要尽量避免使用Python全局变量。不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性。对全局变量,如果程序员甲修改了_a的值,这时可能导致程序中的错误。这种错误是很难发现和更正的。

全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。同样,全局变量降低了代码的可读性,阅读者可能并不知道调用的某个变量是全局变量。 但是某些时候,Python全局变量能够解决局部变量所难以解决的问题。事物要一分为二。

python里面全局变量有两种灵活的用法:

gl.py:

gl_1 = 'hello'
gl_2 = 'world'

在其它模块中使用

a.py:

import gl 
def hello_world() 
 print gl.gl_1, gl.gl_2

b.py:

import gl 
def fun1() 
 gl.gl_1 = 'Hello'
 gl.gl_2 = 'World'
def modifyConstant() : 
  global CONSTANT 
  print CONSTANT 
  CONSTANT += 1
  return
if __name__ == '__main__' : 
  modifyConstant() 
  print CONSTANT

1 声明法

在文件开头声明Python全局变量variable, 在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 CONSTANT = 0 (将全局变量大写便于识别)

2模块法

gl.py:

gl_1 = 'hello'
gl_2 = 'world'

在其它模块中使用

a.py:

import gl 
def hello_world() 
 print gl.gl_1, gl.gl_2

b.py:

import gl 
def fun1() 
 gl.gl_1 = 'Hello'
 gl.gl_2 = 'World'
def modifyConstant() : 
  global CONSTANT 
  print CONSTANT 
  CONSTANT += 1
  return
if __name__ == '__main__' : 
  modifyConstant() 
  print CONSTANT

内容扩展:

什么是局部变量

通俗定义:函数内部定义的变量就叫局部变量。

话不多说,代码如下:

def test1():
 a = 300 # 定义一个局部变量a,并初始化300
 print("--test1--修改前:a=%s" % a)
 a = 200 # 给变量a重新赋值200
 print("--test1--修改后:a=%s" % a)
def test2():
 a = 400 # 定义另一个局部变量a,并初始化400
 print("--test2--修改后:a=%s" % a)
# 分别调用函数test1,test2
test1()
test2()

输出:

--test1--修改前:a=300
--test1--修改后:a=200
--test2--修改后:a=400

结论:

  • 局部变量就是在函数内部定义的变量。
  • 不同的函数内部可以定义名字相同的变量,但它们不会产生影响。
  • 局部变量的作用,为了临时保存数据需要在需要在函数中定义变量来进行存储。

到此这篇关于Python中的全局变量如何理解的文章就介绍到这了,更多相关Python中全局变量详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python提示No module named images的解决方法
Sep 29 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
Python 画出来六维图
Jul 26 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
pandas的resample重采样的使用
Apr 24 Python
通俗讲解python 装饰器
Sep 07 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 #Python
Python urllib2运行过程原理解析
Jun 04 #Python
Python如何生成xml文件
Jun 04 #Python
基于python代码批量处理图片resize
Jun 04 #Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 #Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 #Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 #Python
You might like
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
python中ConfigParse模块的用法
2014/09/29 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python 绘制场景热力图的示例
2020/09/23 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
毕业生的自我评价范文
2013/12/31 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
五四青年节活动总结
2015/02/10 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
A22国内电台短波广播频率表
2022/05/10 无线电