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

Python函数返回与局部作用域销毁相关问题咨询

关于Python函数局部作用域销毁与“执行返回”的疑问解答

首先明确:“程序执行返回”指的是函数完成自身所有代码的执行(或者遇到return语句主动退出),退出当前函数的过程。而返回的位置,确实就是调用这个函数的语句的下一行。

拿你给出的代码来拆解整个执行流程,就能看得更清楚:

def spam():
    eggs = 99
    bacon()
    print(eggs)
           
def bacon():
    ham = 101
    eggs = 0

spam()
  • 当你运行spam()时,程序进入spam的局部作用域,创建了局部变量eggs并赋值为99。
  • 接着执行bacon(),程序切换到bacon的局部作用域,创建了ham=101和属于bacon的局部变量eggs=0。
  • bacon里的所有代码执行完毕后,就触发了“执行返回”:bacon的局部作用域被立即销毁,里面的ham和eggs都不复存在,程序回到spam里调用bacon()的下一行——也就是print(eggs)这行。
  • 此时打印的是spam作用域里的eggs=99,因为bacon的局部变量已经随着作用域销毁了。
  • 最后spam的代码执行完,它的局部作用域也会被销毁。

简单总结:函数只要干完自己的活(不管是自然跑完还是用return提前结束),就会“返回”到调用它的地方,同时自己的局部作用域直接被销毁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:12:03