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

Python函数内修改的全局变量外部无法访问:变量未更新问题

问题根因

你代码中的global声明逻辑完全正确,实际是因为你没有主动调用set_a()函数,函数内部的赋值逻辑从未执行,所以全局变量a一直维持初始的None值。

修正后代码

a = None

def set_a():
    global a
    a = 10+2

# 新增调用语句,触发内部赋值逻辑
set_a()
print(a)

运行后即可输出预期的12。

全局变量使用注意事项

  • 函数内部修改全局变量前必须用global关键字声明该变量,否则Python会将其识别为函数局部变量,不会修改全局值
  • 完成变量修改的函数必须被主动调用,修改逻辑才会生效
  • 实际开发中更推荐通过函数返回值传递计算结果,而非依赖全局变量传递,可以避免大量全局变量带来的作用域冲突、调试困难等问题,示例如下:
def get_a():
    return 10+2

a = get_a()
print(a)

内容的提问来源于stack exchange,提问作者Melika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:06:02