Python3中在多个函数内修改全局变量报错求助
解决全局变量修改时的UnboundLocalError错误
你的错误出在thing_2()函数里:
- 当函数内部要修改全局变量时,必须用
global关键字声明该变量属于全局作用域 thing_2()里直接执行x +=4,Python会默认把x当作局部变量处理,但x +=4等价于x = x +4,执行时会先读取局部变量x,可这个局部x根本没定义,所以抛出UnboundLocalError。
解决方法很简单,给thing_2()加上global x声明:
x = 4 def thing_1(): global x x += 1 return x def thing_2(): global x # 新增全局变量声明 x += 4 return x print(x) thing_1() print(x) thing_2() print(x)
运行修正后的代码,输出结果如下:
4 5 9
完全符合你预期的全局变量每次更新的结果。
内容的提问来源于stack exchange,提问作者user21502058
相关产品推荐
相关产品推荐

