Python全局变量用法实例分析

 更新时间:2016年07月19日 12:24:47   作者:miky  
这篇文章主要介绍了Python全局变量用法,结合实例形式分析了Python中全局变量的定义、使用方法与相关注意事项,需要的朋友可以参考下

本文实例讲述了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图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Pyspark获取并处理RDD数据代码实例

    Pyspark获取并处理RDD数据代码实例

    这篇文章主要介绍了Pyspark获取并处理RDD数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python中IO多路复用模块selector的用法详解

    Python中IO多路复用模块selector的用法详解

    selector 是一个实现了IO复用模型的python包,实现了IO多路复用模型的 select、poll 和 epoll 等函数,下面就跟随小编一起来学习一下它的具体使用吧
    2024-02-02
  • 详解python字符串驻留技术

    详解python字符串驻留技术

    在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能。
    2021-05-05
  • 关于Python正则表达式 findall函数问题详解

    关于Python正则表达式 findall函数问题详解

    在写正则表达式的时候总会遇到不少的问题,本文讲述了Python正则表达式中 findall()函数和多个表达式元组相遇的时候会出现的问题
    2018-03-03
  • Python实现截图生成符合markdown的链接

    Python实现截图生成符合markdown的链接

    之前是用的是typora来写的文章,最近typora最近开始收费了,所以就不想用了,于是找到了一个替代品MarkText。本文将介绍如何通过Python实现截图自动生成符合markdown的链接,感兴趣的可以了解一下
    2022-01-01
  • Pytorch如何快速计算余弦相似性矩阵

    Pytorch如何快速计算余弦相似性矩阵

    这篇文章主要介绍了Pytorch如何快速计算余弦相似性矩阵问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法

    Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法

    这篇文章主要介绍了Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • python 接口实现 供第三方调用的例子

    python 接口实现 供第三方调用的例子

    今天小编就为大家分享一篇python 接口实现 供第三方调用的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 深入浅析Python中的迭代器

    深入浅析Python中的迭代器

    迭代器是实现了迭代器协议的类对象,迭代器协议规定了迭代器类必需定义__next()__方法。这篇文章主要介绍了Python中的迭代器,需要的朋友可以参考下
    2019-06-06
  • 利用 Python 实现多任务进程

    利用 Python 实现多任务进程

    这篇文章主要介绍如何利用 Python 实现多任务进程,正在执行的程序,由程序、数据和进程控制块组成,是正在执行的程序,程序的一次执行过程,是资源调度的基本单位。下面就来详细介绍改内容,需要的朋友可以参考一下
    2021-10-10

最新评论