Python 3中函数引用全局变量遇赋值前引用错误,如何解决?
问题解决:全局变量在函数内赋值前被引用的错误
你的问题出在函数内部没有声明要使用的全局变量。虽然你在全局作用域写了global add,但这个声明只在全局作用域生效——当函数里出现add = add + 1这类赋值操作时,Python会默认把add当作局部变量处理,而局部变量还没赋值就被print(add)调用,因此触发报错。
修复方法很直接,在函数内部开头加上global add声明,明确告诉Python这个函数里的add是全局变量:
add = 0 # 全局作用域无需加global,直接赋值即可创建全局变量 def addit(): global add # 关键:在函数内声明使用全局变量 print(add) add = add + 1 addit() addit()
额外说明:全局作用域中的global add是多余的,直接给变量赋值就会生成全局变量,不需要额外声明。
内容的提问来源于stack exchange,提问作者Snapping Turtla
相关产品推荐
相关产品推荐

