KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

Python 生成器与 yield 详解 — keel 龙骨

Python 生成器与 yield 详解 的参考信息:Python 生成器与 yield 详解

从「一个函数只能 return 一次」讲到「流式推送几百个事件」,把 yield 真正讲透。

开始阅读:课程导读

这门课不是语法清单。yield 是 Python 异步世界的地基——SSE 流式推送、任务队列、asyncio,全都是它的后裔。学完这门课,你再回头看真实项目里 async for item in event_iterator 这种代码,看到的会是一台你能拆开的机器。

例子全部可以复制到 REPL 里跑。

# 先给你一个 30 秒预览:这个函数被执行时,一行代码都没有真正运行
def counter():
    print("开始")
    yield 1
    print("继续")
    yield 2

gen = counter()      # ← 没有任何输出!函数体根本没执行
print(next(gen))     # 输出「开始」然后返回 1
print(next(gen))     # 输出「继续」然后返回 2
print(next(gen))     # 抛出 StopIteration

如果你对上面四行注释里的任何一个感到意外,这门课就是为你写的。

进入 keel 阅读