Python教程之全局变量用法


Posted in Python onJune 27, 2016

本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下:

全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。

程序大致是这样的:

CONSTANT = 0
def modifyConstant() :
  print CONSTANT
  CONSTANT += 1
  return
if __name__ == '__main__' :
  modifyConstant()
  print CONSTANT

运行结果如下:

UnboundLocalError: local variable 'CONSTANT' referenced before assignment

看来,全局变量在函数modifyConstant中边成了局部变量,似乎全局变量没有生效?

做点修改:

CONSTANT = 0
def modifyConstant() :
  print CONSTANT
  #CONSTANT += 1
  return
if __name__ == '__main__' :
  modifyConstant()
  print CONSTANT

运行正常,看来函数内部是可以访问全局变量的。

所以,问题就在于,因为在函数内部修改了变量CONSTANT,Python认为CONSTANT是局部变量,而print CONSTANT又在CONSTANT += 1之前,所以当然会发生这种错误。

那么,应该如何在函数内部访问并修改全局变量呢?应该使用关键字global来修饰变量(有点像PHP):

CONSTANT = 0
def modifyConstant() :
  global CONSTANT
  print CONSTANT
  CONSTANT += 1
  return
if __name__ == '__main__' :
  modifyConstant()
  print CONSTANT

就这么简单!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
从零学python系列之数据处理编程实例(一)
May 22 Python
python将字符串转换成数组的方法
Apr 29 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
在Django的视图(View)外使用Session的方法
Jul 23 Python
Python实现Linux中的du命令
Jun 12 Python
Python 异常处理的实例详解
Sep 11 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
Python读写Excel表格的方法
Mar 02 Python
python设计模式大全
Jun 27 #Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 #Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 #Python
Python读写txt文本文件的操作方法全解析
Jun 26 #Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 #Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 #Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 #Python
You might like
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
javascript模拟命名空间
2015/04/17 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
python读写csv文件方法详细总结
2019/07/05 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
打架检讨书100字
2014/01/08 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
大型车展策划方案
2014/02/01 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
好的促销活动方案
2014/08/21 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
校运会新闻稿
2015/07/17 职场文书
安全生产标语口号
2015/12/26 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers