Discuss / Python / 让鹅先下蛋

让鹅先下蛋

Topic source

静水流深

#1 Created at ... [Delete] [Delete and Lock User]

就是先让鹅下蛋,啥也不喂它,所以第一次启动generator要send(None),然后人拿走蛋,吃完蛋有力气了去割草,把草料喂鹅,鹅吃完草料,又下也第二个蛋,以此类推,最后人吃完第n个蛋,不想再这么平庸下去了,决定去他的养鹅,直接close大鹅,就全结束了。

TTT

#2 Created at ... [Delete] [Delete and Lock User]

其实就是利用了生成器可以随时暂停保存,下一次调用时继续执行。只不过生成器里可以有执行动作,看起来像个高级点的变量。

孤灯暮禅

#3 Created at ... [Delete] [Delete and Lock User]

你这种理解反而复杂了。协程就是一种generator,之前章节的生成器生成斐波那契数列是基于自身内部的逻辑,现在生成器产生数据是外部传入数据,生成器处理后输出的——这种逻辑跟调用有参函数,然后函数返回数据是一样的。区别是函数return后就结束了,现实换成yield可以循环调用这个函数,函数可以一直返回我结果


  • 1

Reply