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中mechanize库的简单使用示例
Jan 10 Python
python fabric使用笔记
May 09 Python
python运行时间的几种方法
Jun 17 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
linux查找当前python解释器的位置方法
Feb 20 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Python正则表达式如何匹配中文
May 27 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
Python3+Appium安装使用教程
2019/07/05 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python 绘制场景热力图的示例
2020/09/23 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
操行评语大全
2014/04/30 职场文书
经营理念口号
2014/06/21 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
MySQL中一条update语句是如何执行的
2022/03/16 MySQL