Python 3.7.3出现SyntaxError: variable used prior to global declaration问题求助
报错根因
SyntaxError: variable used prior to global declaration 是Python中全局变量使用的规则错误:在函数内部先使用了某全局变量,之后才通过global关键字声明该变量为全局变量,不符合Python语法要求。
典型错误代码示例:
# 全局变量 total = 10 def calc(): # 先使用变量 print("当前值:", total) # 后声明全局变量,触发报错 global total total += 5
修复方法
- 找到报错日志指向的函数及对应的变量名
- 将
global 变量名的声明语句,移动到该函数内所有使用该变量的代码的最前面 - 调整后重新运行代码即可
修复后正确代码示例:
# 全局变量 total = 10 def calc(): # 先声明全局变量 global total # 后使用变量 print("当前值:", total) total += 5
额外说明
- 若函数仅读取全局变量的值、不需要修改该变量,则不需要加
global声明 - 不要在同一个函数内同时将该变量作为局部变量赋值、又声明为全局变量,也会触发同类报错
内容的提问来源于stack exchange,提问作者optimum pride
相关产品推荐
相关产品推荐

