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库urllib与urllib2主要区别分析
Jul 13 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python文件与目录操作实例详解
Feb 22 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
python使用Matplotlib画条形图
Mar 25 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 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者的疑难问答(2)
2006/10/09 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
Python实现多行注释的另类方法
2014/08/22 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
Python应用库大全总结
2018/05/30 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python实现滑雪者小游戏
2020/02/22 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
大学应届生求职简历的自我评价
2013/10/08 职场文书
观看信仰心得体会
2014/09/04 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
领导欢迎词致辞
2015/01/23 职场文书
财政局长个人总结
2015/03/04 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers