代码点读机 / Python / global

global Python · 关键字

函数内部,如果你想修改全局变量(函数外面定义的变量),必须先声明 global,否则 Python 会以为你定义了一个新的局部变量。像你在房间里要拿客厅的遥控器,需要先说明“我要用客厅那个”。

怎么用

global 变量名

小例子

x = 5   # 全局变量

def change():
    global x   # 声明我要修改全局的 x
    x = 10

change()
print(x)   # 10

不加 global 的对比

x = 5
def no_change():
    x = 10   # 这其实是创建了一个新的局部变量 x,不影响全局
no_change()
print(x)   # 还是 5

提醒:global 可以声明多个变量:global x, y。过度使用 global 会让程序难以维护,尽量通过函数参数和返回值传递数据。

官方文档:https://docs.python.org/zh-cn/3/reference/simple_stmts.html#global

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条