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

如何让全局变量影响Python函数?修复变量未定义报错

问题修复方案

错误原因

在你的代码中,函数dd()执行到c = input()时,Python会自动将c视为局部变量。但在这之前的if c == 1语句已经尝试读取这个未定义的局部变量,因此触发了"变量未定义"的错误。

修复方法

方法1:使用global关键字声明全局变量

通过global关键字明确告诉Python,函数内的c引用的是全局作用域中的变量,这样读取和赋值操作都会直接作用于全局变量:

c = 1
def dd():
    global c  # 声明c为全局变量
    if c == 1:
        print("hi")
        c = 2  # 修改全局变量值,触发后续else分支
    else:
        c = input()
        dd()

dd()

方法2:将变量作为函数参数传递(推荐)

避免依赖全局变量,把c作为参数传入函数,递归调用时传递更新后的值,这种方式更符合代码设计的最佳实践,减少副作用:

def dd(c):
    if c == 1:
        print("hi")
        dd(2)  # 传递新值触发else分支
    else:
        new_c = input()
        dd(new_c)

dd(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:37:39