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
相关产品推荐
相关产品推荐

