私信  •  关注

Rafał Dowgird

Rafał Dowgird 最近创建的主题
Rafał Dowgird 最近回复了
15 年前
回复了 Rafał Dowgird 创建的主题 » 在Python代码中,您在哪里使用生成器特性?

一般来说,将数据获取(可能很复杂)与消费分开。特别地:

  • 要连接多个B树查询的结果,db部分将生成并执行查询 yield -通过记录,消费者只看到单个数据项到达。
  • 缓冲(预读)-生成器获取块中的数据,并从每个块生成单个元素。同样,消费者与血淋淋的细节是分开的。

发电机也可以作为协同工作。你可以传递数据 进入之内 他们使用 nextval=g.next(data) 在“消费者”方面, data = yield(nextval) 在发电机侧。在这种情况下,发电机及其用户的“交换”值。你甚至可以 产量 在生成器上下文中引发异常: g.throw(exc) 就是这样。