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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
Python中Random和Math模块学习笔记
May 18 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
Pycharm远程调试openstack的方法
Nov 21 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
python collections模块的使用
Oct 16 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
Linux编译升级php的详细方法
2013/11/04 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript 打印页面代码
2009/03/24 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
保险公司年会主持词
2014/03/22 职场文书
租房协议书范本
2014/04/09 职场文书
党支部对照检查材料
2014/08/25 职场文书
师德师风自查总结
2014/10/14 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
新生儿未入户证明
2015/06/23 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Python之matplotlib绘制饼图
2022/04/13 Python
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android