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 的 with 语句详解
Jun 13 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Windows下PyCharm安装图文教程
Aug 27 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
对python中dict和json的区别详解
Dec 18 Python
Python实现最大子序和的方法示例
Jul 05 Python
python读写csv文件实例代码
Jul 05 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python 寻找局部最高点的实现
Dec 05 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
如何在python中判断变量的类型
Jul 29 Python
Python Opencv图像处理基本操作代码详解
Aug 31 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/12/08 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
PHP实现递归的三种方法
2020/07/04 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
django使用JWT保存用户登录信息
2020/04/22 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
公司晚会主持词
2014/03/22 职场文书
党风廉政承诺书
2014/03/27 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
Golang: 内建容器的用法
2021/05/05 Golang