python-yield-生成器--的作用
http://www.python.org/dev/peps/pep-0255/
编译器 中最初级的模块是进行词法分析, 将源代码 转化成 token流。
可以 一次性将所有 字符转换成token list , 之后再处理;
也可以每次获取一个 token, 处理之后, 接着再获取下一个token, 即边分析边处理, 这就需要token函数 记录 当前分析的 状态, 一种是将状态 由外部调用者 传入, 一种是 函数内部自己来记录这个状态。
也可以使用线程之间通信的方式来处理,将token生产函数 和 token读取函数放到两个线程中。
这一切本质都是为了让代码更好看。
而yield 就是另外一种方式, 每次重入函数的时候, 都将从上次结束的地方 继续开始处理, 这个对象被称为 generator 生成器。
def fib():
a, b = 0, 1
while True:
yield b
a, b = b, a+b
调用函数执行到yield的时候 将会 返回一个生成器, 接着调用生成器的 next() 将会 执行直到再次执行到yield 这里 并将 b 的值返回, 有点类似于 断点调试程序, 查看程序的内部变量的状态。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步