Python中的global关键字


Python程序中不同的变量具有不同的作用域。根据变量的声明位置,它可能在函数内部可访问,也可能不可访问。有时我们需要从其当前作用域外部修改函数内部存在的变量。在这种情况下,我们使用global关键字以及变量名。

以下是关于global关键字的关键点:

  • 在函数外部声明的变量默认为全局变量。

  • 我们对函数内部的变量使用global关键字,以便可以修改它。

  • 如果没有global关键字,函数内部的变量默认为局部变量。

无global关键字

在下面的例子中,我们将看到在没有global关键字的情况下变量是如何变化的。这将帮助我们理解在下一个程序中global关键字有何不同。在下面的例子中,我们试图在函数内部修改全局变量。但是会发生错误,因为我们不能在函数内部修改全局变量。

示例

 在线演示

var = 321
# function to modify the variable
def modify():
   var = var * 2
   print(var)
# calling the function
modify()

输出

运行以上代码将得到以下结果:

UnboundLocalError: local variable 'var' referenced before assignment

使用global关键字

现在我们在函数内部声明变量以及global关键字。这使得变量可修改。

示例

 在线演示

var = 321
# function to modify the variable
def modify():
   global var
   var = var * 2
   print(var)
# calling the function
modify()

输出

运行以上代码将得到以下结果:

642

嵌套函数中的global关键字

如果我们必须使用嵌套函数,则必须在内部函数中声明global关键字,以便可以修改变量。

示例

def outer_func():
   var = 321
# function to modify the variable
   def modify():
      global var
   var = var * 2
   print(var)
# calling the function
   modify()
outer_func()

输出

运行以上代码将得到以下结果:

642

更新于:2019年10月17日

787 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告