Python全局变量用法实例分析

作者:miky 时间:2023-08-03 13:39:18 

本文实例讲述了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,全局变量
0
投稿

猜你喜欢

  • PyQt5每天必学之单行文本框

    2022-09-12 06:29:35
  • SQL Server asp.net 数据提供程序连接池

    2009-09-18 08:18:00
  • pandas 选取行和列数据的方法详解

    2022-12-29 19:28:58
  • 详解Python中如何将数据存储为json格式的文件

    2023-11-01 02:42:11
  • windows下Anaconda的安装与配置正解(Anaconda入门教程) <font color=red>原创</font>

    2023-05-23 11:10:50
  • Mysql导入TXT文件

    2012-01-05 19:01:10
  • Python实现Kmeans聚类算法

    2023-05-07 19:25:36
  • php 静态页面中显示动态内容

    2023-11-18 22:09:22
  • Python3实现自定义比较排序/运算符

    2023-04-15 23:32:25
  • JavaScript Math 对象常用方法总结

    2024-06-05 09:33:56
  • 基于python的Paxos算法实现

    2023-04-15 07:40:58
  • select count()和select count(1)的区别和执行方式讲解

    2024-01-29 03:11:31
  • 浅谈终端直接执行py文件,不需要python命令

    2022-12-25 14:38:11
  • Python单例模式的两种实现方法

    2023-03-03 12:31:09
  • Flask模板引擎Jinja2使用实例

    2022-01-19 11:58:39
  • JQuery+DIV自定义滚动条样式的具体实现

    2024-04-22 13:27:07
  • 面向新手解析python Beautiful Soup基本用法

    2023-11-06 22:29:50
  • python实现矩阵乘法

    2023-11-03 07:41:10
  • python itertools包内置无限迭代器

    2023-11-16 18:58:59
  • 树莓派实现移动拍照

    2021-10-07 18:02:25
  • asp之家 网络编程 m.aspxhome.com