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 + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
Python与shell的3种交互方式介绍
Apr 11 Python
Python中获取对象信息的方法
Apr 27 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
Python内置函数 next的具体使用方法
Nov 24 Python
python绘制直线的方法
Jun 30 Python
python format 格式化输出方法
Jul 16 Python
Python线程之定位与销毁的实现
Feb 17 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
python 实现按对象传值
Dec 26 Python
基于Python 函数和方法的区别说明
Mar 24 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JavaScript多线程的实现方法
2007/05/08 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python抓取京东图书评论数据
2014/08/31 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
python中id函数运行方式
2020/07/03 Python
Python用SSH连接到网络设备
2021/02/18 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
优秀员工演讲稿
2014/05/19 职场文书
售房协议书范本2014
2014/10/23 职场文书
电话营销开场白
2015/05/29 职场文书
领导视察通讯稿
2015/07/18 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
2019各种承诺书范文
2019/06/24 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
实战Python爬虫爬取酷我音乐
2022/04/11 Python
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript