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去掉字符串中空格的方法
Mar 11 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python TKinter获取文本框内容的方法
Oct 11 Python
python识别图像并提取文字的实现方法
Jun 28 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
Pytorch 实现变量类型转换
May 17 Python
利用Python+OpenCV三步去除水印
May 28 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
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
python实现绘制树枝简单示例
2014/07/24 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
物业管理求职自荐信
2013/09/25 职场文书
电大自我鉴定范文
2013/10/01 职场文书
团组织关系介绍信
2014/01/12 职场文书
水毁工程实施方案
2014/04/01 职场文书
关于青春的演讲稿
2014/05/05 职场文书
Pillow图像处理库安装及使用
2022/04/12 Python