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中用Decorator来简化元编程的教程
Apr 13 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
Python作用域与名字空间原理详解
Mar 21 Python
Jupyter加载文件的实现方法
Apr 14 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
详解Python中*args和**kwargs的使用
Apr 07 Python
Python简易开发之制作计算器
Apr 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重定向的3种方式
2013/03/07 PHP
PHP计数器的实现代码
2013/06/08 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
PHP 验证登陆类分享
2015/03/13 PHP
PHP实现合并discuz用户
2015/08/05 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
浅谈Python __init__.py的作用
2020/10/28 Python
大学生求职简历的自我评价
2013/10/14 职场文书
医院护士的求职信
2014/01/03 职场文书
2014年国培研修感言
2014/03/09 职场文书
保险公司早会主持词
2014/03/22 职场文书
药学职务聘任书
2014/03/29 职场文书
反邪教标语
2014/06/23 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript