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判断windows隐藏文件的方法
Mar 21 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
python实现WebSocket服务端过程解析
Oct 18 Python
python是怎么被发明的
Jun 15 Python
python解释器安装教程的方法步骤
Jul 02 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
套娃式文件夹如何通过Python批量处理
Aug 23 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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
分享3个php获取日历的函数
2015/09/25 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
文化活动实施方案
2014/03/28 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书