Python全局变量用法实例分析


Posted in Python onJuly 19, 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通过正则查找微博@(at)用户的方法
Mar 13 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
对python函数签名的方法详解
Jan 22 Python
python中的RSA加密与解密实例解析
Nov 18 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
tensorflow多维张量计算实例
Feb 11 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
python安装及变量名介绍详解
Dec 12 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
python对象及面向对象技术详解
Jul 19 #Python
python异常和文件处理机制详解
Jul 19 #Python
python线程、进程和协程详解
Jul 19 #Python
浅谈python字符串方法的简单使用
Jul 18 #Python
python读取oracle函数返回值
Jul 18 #Python
Python读取一个目录下所有目录和文件的方法
Jul 15 #Python
Python在线运行代码助手
Jul 15 #Python
You might like
桌面中心(一)创建数据库
2006/10/09 PHP
php桌面中心(一) 创建数据库
2007/03/11 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
JS查看对象功能代码
2008/04/25 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
初探nodeJS
2017/01/24 NodeJs
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
简单谈谈Python的pycurl模块
2018/04/07 Python
python实现剪切功能
2019/01/23 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
关于倡议书的范文
2015/04/29 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书