Python生成器的"send"函数的目的是什么?

12 浏览
0 Comments

Python生成器的"send"函数的目的是什么?

我理解yield。但是生成器的send函数是什么意思呢?文档中说:

generator.send(value)

恢复执行并向生成器函数“发送”一个值。value参数成为当前yield表达式的结果。send()方法返回生成器产生的下一个值,如果生成器在不产生另一个值的情况下退出,则引发StopIteration异常。

这是什么意思?我以为value是生成器函数的输入?短语“send()方法返回生成器产生的下一个值”似乎也是yield的确切目的,它也返回生成器产生的下一个值。

有没有一个使用send的生成器的例子,可以完成yield无法完成的任务?

0