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内置函数bin() oct()等实现进制转换
Dec 30 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
详解python分布式进程
2018/10/08 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python日期相关操作实例小结
2019/06/24 Python
python把转列表为集合的方法
2019/06/28 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
护士自荐信范文
2013/12/15 职场文书
教师暑期培训感言
2014/08/15 职场文书
上班迟到检讨书
2014/09/15 职场文书
办公室个人总结
2015/02/28 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
Java使用HttpClient实现文件下载
2022/08/14 Java/Android