在 Python 中,global
关键字允许我们修改当前作用域之外的变量。
它用于创建一个全局变量并在局部上下文中修改该变量。
在学习 global
关键字之前,请确保你已经掌握了 Python 变量作用域 的一些基础知识。
访问和修改 Python 全局变量
首先,我们尝试从 函数 内部访问全局变量,
c = 1 # global variable
def add():
print(c)
add()
# Output: 1
在这里,我们可以看到我们已经从函数内部访问了一个全局变量。
然而,如果我们在函数内部尝试修改全局变量,例如:
# global variable
c = 1
def add():
# increment c by 2
c = c + 2
print(c)
add()
输出
UnboundLocalError: local variable 'c' referenced before assignment
这是因为我们只能从函数内部访问全局变量,但不能修改它。
解决方案是使用 global
关键字。
示例:使用 global 在函数内部更改全局变量
# global variable
c = 1
def add():
# use of global keyword
global c
# increment c by 2
c = c + 2
print(c)
add()
# Output: 3
在上面的例子中,我们在 add()
内部将 c 定义为 global
关键字。
然后,我们将变量 c 增加了 2,即 c = c + 2
。
正如我们所看到的,在调用 add()
时,全局变量 c 的值从 1 修改为 3。
global 关键字的规则
Python 中 global
关键字的基本规则是:
- 当我们在函数内部创建一个变量时,它默认是局部变量。
- 当我们在函数外部定义一个变量时,它默认是全局变量。你不必使用
global
关键字。 - 我们使用
global
关键字来修改(写入)函数内部的全局变量。 - 在函数外部使用
global
关键字没有效果。
另请阅读