首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 的 yield from 到底转发了什么:拆开 send、throw 和那个 return 值

Python 的 yield from 到底转发了什么:拆开 send、throw 和那个 return 值

作者头像
小小张说故事
发布于 2026-11-14 08:50:40
发布于 2026-11-14 08:50:40
260
举报
概述
yield from 不是省一层 for 循环的语法糖,而是把调用方与子生成器直接接通:send 的值、throw 的异常、close 的关闭信号全部双向透传,子生成器 return 的值还会成为整个表达式的结果。本文用本机 CPython 3.13.14 实测 GET_YIELD_FROM_ITER/SEND/YIELD_VALUE/END_SEND 字节码、对比手写循环丢失 return 值、PEP 479 的 RuntimeError,附对照表与七条排错清单

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、先看最容易被忽略的:return 值
  • 二、send 和 throw 是双向的
  • 三、3.13 里,它编译成什么
  • 四、一个必须记住的坑:PEP 479
  • 五、对照表
  • 六、七条排错清单
  • 小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档