KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
Python 生成器与 yield 详解 · 课程导读 — keel 龙骨
Python 生成器与 yield 详解 的参考信息:Python 生成器与 yield 详解 · 课程导读
为什么单独开一门课讲 yield
因为它是三个世界的交叉点:
| 世界 | yield 在里面的角色 | 生产代码里的真实例子 |
|---|---|---|
| 普通同步代码 | 惰性序列:用到哪个算哪个 | 分批读取大文件 |
| 流式系统 | 「产出一个、交出去、再产出下一个」的泵 | stream_chat 每产生一个事件 yield item |
| 异步框架 | asyncio 的历史起点:async/await 的前身就是基于 yield 的协程 |
SSE 生成器持续推送 |
一门课讲透一个关键字,是因为它背后是一整套执行模型——理解了「函数可以停在半路」,后面学 async/await、看框架源码都不再是背咒语。
章节地图
| 章节 | 关键问题 | 预习提示 |
|---|---|---|
| 00 | return 不够用吗?yield 到底解决什么问题? |
30 秒预览实验 |
| 01 | 函数怎么「停在半路」?next/for/StopIteration 逐行演算 | 本课核心,慢读 |
| 02 | yield 只能往外吐值吗?send/throw/close 与 yield from | 进阶语法 |
| 03 | async def + yield 是什么?和普通生成器差在哪? |
通向异步世界 |
| 04 | 三个真实场景生成器逐行拆解 | 学以致用 |
| 05 | 十个经典陷阱与自检题 | 工程防身 |
学习方式
- 每段代码都亲手跑一遍——生成器是「动态的」,光看静态代码永远学不会,你必须在 REPL 里看着
next()一步步走; - 01 章的逐行演算是全课的地基,看懂了它,03 章的异步生成器只是加了个
await; - 04 章把语言知识和工程场景打通——三个案例都来自生产级流式系统的典型形态,读完能直接对照自己手头的代码。