You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python全局变量声明方法及global关键字使用报错排查

Python全局变量使用误区解析

嘿,我来帮你理清楚这个问题——你代码里的问题其实出在两个关键的语法误区上,咱们一步步拆解:

1. 全局变量的声明不需要global关键字

你写的 global var = 0 是语法错误!global 关键字的作用不是在函数外部声明全局变量,而是在函数内部标记“我要使用/修改外部定义的全局变量”。正确的全局变量声明直接在函数外部赋值即可:

# 正确的全局变量声明
var = 0

2. 函数内部修改全局变量必须先声明global

当你在函数里写 var = var +1 时,Python会默认把 var 当成局部变量处理。但你在赋值操作的右边先引用了 var,此时局部的 var 还没被赋值,就会抛出“局部变量未定义”的错误。

解决方法很简单:在函数内部的开头,先用 global var 声明这个变量是全局的,告诉Python“我要修改的是外面那个全局的var,不是新的局部变量”:

var = 0

def test():
    # 声明要使用全局变量var
    global var
    var = var + 1

test()
print(var)  # 输出 1

额外小提示:只读全局变量无需global

如果只是在函数内部读取全局变量的值,不需要加 global 声明,Python会自动向上查找全局作用域的变量:

var = 0

def test():
    # 只读全局变量,无需global
    print("当前var的值是:", var)

test()  # 输出 当前var的值是: 0

内容的提问来源于stack exchange,提问作者user9714064

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:19:23