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

Python中函数内定义的变量为何无法在函数外部访问?

Python函数内变量无法在外部访问的原因

这是Python的变量作用域规则在起作用,具体原因如下:

  • 函数内部定义的变量属于局部作用域:你在sum函数里定义的test是局部变量,它的生命周期只限于函数执行过程中。函数执行完毕后,这个变量就会被Python的垃圾回收机制清除,外部完全访问不到它。
  • 全局作用域和局部作用域是隔离的:当你在函数外执行print(test)时,Python会在全局作用域里找test变量,但这个变量从来没在全局范围内定义过,自然会报NameError。
  • 函数内部打印能成功的原因:把print(res)放在函数内部时,它访问的是当前局部作用域里的res变量,这时候函数还在执行,变量还存在,所以能正常输出计算结果。

如果想在函数外部获取函数内的计算结果,正确的做法是用return语句返回值:

def sum(x, y):
    test = x + y
    return test

# 接收函数返回的结果
result = sum(1, 2)
print(result)  # 输出3

除非有特殊需求,否则不建议用global关键字把局部变量声明为全局变量——这种做法会破坏作用域的隔离性,容易引发难以排查的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:50:25