Python 程序中的 Global 关键字
pythonserver side programmingprogramming
有时我们声明了一个变量,但我们可能需要修改或访问其声明当前范围之外的值,该范围可能位于当前程序的任何地方。在这种情况下,我们在声明变量的函数内使用 Global 关键字和变量名。如果变量不在函数内,则它在范围内自动为全局变量。
函数外的变量
在下面的例子中,我们看到一个函数外的值,但我们可以从函数内部访问它。因为这样的变量在范围内已经是全局的了。
示例
x = 56 def func(): y = x *2 return y print(func())
运行上述代码得到以下结果:
输出
112
函数内的变量
在下一个示例中,我们尝试更改函数内变量的值并收到错误。
示例
x = 56 def func(): y = x *2 x = x+2 return y print(func())
运行上述代码得到以下结果:
输出
nboundLocalError: 局部变量 'x'赋值前引用
在函数内修改具有全局作用域的变量值的唯一方法是将其声明为函数内的全局变量。
示例
x = 56 def func(): global x x = x + 2 y = x *2 return y print(func())
运行上述代码得到以下结果
输出
116
嵌套函数内的变量
在嵌套函数的情况下,我们在最内层函数中创建全局变量,如下例所示。
示例
def func_out(): x = 56 def func_in(): global x x = 20 print("x is: ",x) x = x + 3 y = x *2 print ("y is: ",y) func_in() func_out() print("x is: ",x)
运行上述代码得到以下结果:
输出
x is: 20 y is: 46 x is: 23