https://www.cnblogs.com/xybaby/p/6322376.html
【搬运】generator有以下特点:
1、遵循迭代器(iterator)协议,迭代器协议需要实现__iter__、next接口
2、能过多次进入、多次返回,能够暂停函数体中代码的执行
https://blog.csdn.net/qq_33472765/article/details/80839417
【搬运】当你使用一个yield的时候,对应的函数就是一个生成器了。生成器的功能就是在yield的 区域进行迭代处理。
yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。
重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。
https://blog.csdn.net/weixin_40247263/article/details/81561918
【搬运】当我们在一个方法中执行到return,如果 return后面还需要计算,那么计算完以后方法就会执行完毕。
但是如果方法中包含yield关键字,那么它就不再是一个方法了,而是一个generator对象。
即我们需要使用next()才能让它运行,并且每当遇到y