全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。
程序大致是这样的:
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编程语言中,了解和正确使用局部变量与全局变量是非常重要的基础知识。它们的主要区别在于作用域和可访问性。 **局部变量(Local Variables)**: 局部变量是在函数内部定义的,只在该函数的代码块中有效。...
#### Python全局变量的概念与作用 在Python编程语言中,全局变量是指在整个程序范围内都可访问的变量。这意味着无论函数或类如何嵌套,只要没有同名的局部变量存在,都可以直接访问全局变量。全局变量通常用于存储...
Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。 Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于...
python局部变量全局变量-静态方法-实例变量静态变量代码解析。
Python是一种面向对象的开发语言,在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明的全局变量才能使用,这里就来介绍下Python全局变量有关问题。 首先应该说明的是需要尽量避免使用Python全局...
Python写的多线程共享全局变量代码,用于学习多线程开发,可以直接运行,并且带中文注释,方便初学者学习使用。
Python中的全局变量与局部变量是编程中非常基础但至关重要的概念。它们决定了变量的作用范围和生命周期,对于理解和编写有效的Python代码至关重要。 首先,我们要明确什么是全局变量和局部变量。全局变量是在程序的...
Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。 Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于...
本文实例讲述了Python3.5局部变量与全局变量作用域。分享给大家供大家参考,具体如下: 1、局部变量与全局变量定义: 在子程序(函数)中定义的变量称为:局部变量;在程序顶级(一开始)定义的变量称为:全局变量。...
Python 定义了全局变量的特性,使用global 关键字修饰 global key_word 但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。 try 1: 使用一个更宏观的思路,全局变量就用全局加载的...
本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。 程序...
本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。 定义: 全局变量:在...
在这个"python自学教程-19-修改全局变量"的课程中,我们将深入探讨Python中的变量类型,特别是如何在函数内部修改全局变量。 首先,变量是程序中存储数据的容器。在Python中,有多种类型的变量,如整型(int)、...
基于Python实现全局和局部双变量Moran指数计算,输入参数可直接是shapefile文件。
在Python中,变量主要分为两种类型:局部变量(local variables)和全局变量(global variables)。 1. **局部变量**:在函数内部定义的变量被称为局部变量,它们只在该函数的范围内有效。当函数执行完毕,局部变量...
变量搜索路径是:本地变量->全局变量,Python 会按照这个顺序来查找变量。如果找不到变量,将抛出异常。 在 Python 中,变量的作用域跟 Java 的作用域概念有一些不同。在 Python 中,变量的作用域是由文本决定的,...
Python全局变量操作是Python编程中一个基础而重要的知识点,它涉及到变量的作用域、模块化编程以及代码的可维护性等多个方面。本文将详细介绍在Python中如何操作和使用全局变量,并总结了两种常见的使用全局变量的...
在使用Python编写的应用的过程中,有时候会遇到多个文件之间传递同一个全局变量的情况。本文就此给出了如下的解决方法供大家参考。 文件1:globalvar.py #!/usr/bin/env python2.7 class GlobalVar: db_handle = ...
全局变量在Python编程中是一种可以在程序的任何地方访问的变量,不受作用域限制。它们在整个程序的生命周期内都保持其值,除非被显式地修改。然而,全局变量的使用需要谨慎,因为它们可能造成代码的复杂性和难以调试...