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中的RSS处理
Apr 13 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
Django model序列化为json的方法示例
Oct 16 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python创建数字列表的示例
Nov 28 Python
python dumps和loads区别详解
Feb 04 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
Elasticsearch 数据类型及管理
Apr 19 Python
python 使用pandas读取csv文件的方法
Dec 24 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根据IP地址获取所在城市具体实现
2013/11/27 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
python实现TF-IDF算法解析
2018/01/02 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Pycharm github配置实现过程图解
2020/10/13 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
某公司.Net方向面试题
2014/04/24 面试题
负责人任命书范本
2014/06/04 职场文书
学期个人工作总结
2015/02/13 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
python双向链表实例详解
2022/05/25 Python