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数据结构之Array用法实例
Oct 09 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
高效使用Python字典的清单
Apr 04 Python
PyQt5每天必学之布局管理
Apr 19 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
python SMTP实现发送带附件电子邮件
May 22 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
python sqlite的Row对象操作示例
Sep 11 Python
Python实现打包成库供别的模块调用
Jul 13 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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在字符串中查找另一个字符串
2008/11/19 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
php组合排序简单实现方法
2016/10/15 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
python样条插值的实现代码
2018/12/17 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
基于Python函数和变量名解析
2019/07/19 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
某公司面试题
2012/03/05 面试题
土木工程专业个人求职信
2013/12/05 职场文书
2019个人工作总结
2019/06/21 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript