Python全局变量的隐藏“窍门”

开发 后端
Python全局变量的程序介绍,是相关人士更好了解其内在规律,以及Python全局变量的运行结果的详细介绍,以及如何访问Python全局变量。

Python全局变量是不符合参数传递的相关规律,所以很多人不愿意经常使用,除非在定义常量的情况下。一下要讨论的是关于全局变量的相关问题,发现其中隐藏的窍门。希望大家通过这篇文章有所收获。

程序大致是这样的:

  1. CONSTANT = 0 
  2.  
  3. def modifyConstant() :  
  4.         print CONSTANT  
  5.         CONSTANT += 1  
  6.         return  
  7.  
  8. if __name__ == '__main__' :  
  9.         modifyConstant()  
  10.         print CONSTANT  
  11.  

运行结果如下:
UnboundLocalError: local variable 'CONSTANT' referenced before assignment看来,Python全局变量在函数modifyConstant中边成了局部变量,似乎全局变量没有生效?
做点修改:

  1. CONSTANT = 0 
  2.  
  3. def modifyConstant() :  
  4.         print CONSTANT  
  5.         #CONSTANT += 1  
  6.         return  
  7.  
  8. if __name__ == '__main__' :  
  9.         modifyConstant()  
  10.         print CONSTANT  
  11.  

运行正常,看来函数内部是可以访问全局变量的。
所以,问题就在于,因为在函数内部修改了变量CONSTANT,Python认为CONSTANT是局部变量,而print CONSTANT又在CONSTANT += 1之前,所以当然会发生这种错误。那么,应该如何在函数内部访问并修改Python全局变量呢?应该使用关键字global来修饰变量(有点像PHP):

  1. CONSTANT = 0 
  2.  
  3. def modifyConstant() :  
  4.         global CONSTANT  
  5.         print CONSTANT  
  6.         CONSTANT += 1  
  7.         return  
  8.  
  9. if __name__ == '__main__' :  
  10.         modifyConstant()  
  11.         print CONSTANT  
  12.  

如果你对其也有相关不解的亦或时,不妨浏览一下上述解答方案,是你对其有更好的了解,在实际应用中能够畅通应用。

【编辑推荐】

  1. Python循环语句使用中异常现象的处理
  2. Python循环语句中whlie和for的应用
  3. Python编码对解决难解编码的方法及如何巧妙应用
  4. python简单应用中简单程序的编写经验分享
  5. Python String类型基本应用情况分析
责任编辑:佚名 来源: 移动LABS
相关推荐

2010-02-01 14:28:37

Python全局变量

2013-07-17 16:16:06

Android全局变量定义全局变量Application

2010-11-12 10:08:55

SQL Server全

2013-07-25 15:15:26

iOS开发学习iOS全局变量

2009-11-06 13:28:19

Javascript框

2009-09-24 09:28:00

Scala讲座全局变量scala

2015-01-07 14:41:32

Android全局变量局部变量

2013-07-22 14:07:47

2023-09-24 23:40:54

Python变量

2014-06-23 10:25:12

2010-09-08 17:25:17

SQL全局变量

2009-12-09 17:07:08

PHP unset全局

2017-02-08 12:28:37

Android变量总结

2009-12-04 13:14:19

PHP Global变

2009-12-04 13:31:21

PHP全局变量不能生效

2021-02-26 13:42:01

函数全局变量

2010-03-15 10:24:20

Python函数变量

2022-04-12 11:38:06

C语言全局变量

2022-11-28 11:15:20

Tomcat回显方式

2011-08-23 13:54:10

LUA全局变量
点赞
收藏

51CTO技术栈公众号