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
相关产品推荐
相关产品推荐

