python程序中的不同变量具有不同的范围。根据声明的位置,该变量在函数内部是否可以访问。有时我们需要从函数的当前作用域之外修改函数内部存在的变量。在这种情况下,我们将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。这使变量可修改。
var = 321 # function to modify the variable def modify(): global var var = var * 2 print(var) # calling the function modify()
运行上面的代码给我们以下结果-
642
如果必须使用嵌套函数,则必须在内部函数中声明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