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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Python中的字符串查找操作方法总结
Jun 27 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
python实现kMeans算法
Dec 21 Python
django中模板的html自动转意方法
May 27 Python
python计算无向图节点度的实例代码
Nov 22 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 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发送邮件类代码附详细说明
2008/07/10 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
日语专业毕业生自荐信
2013/11/11 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
门店店长岗位职责
2015/04/14 职场文书
教师节获奖感言
2015/07/31 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript