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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:42:35