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
广告