如果一个函数包含了yield,那么这个函数就成了一个generator,generator是一个迭代器,它遵循
- 遵循迭代器(iterator)协议,迭代器协议需要实现__iter__、next接口
- 能过多次进入、多次返回,能够暂停函数体中代码的执行
取一次,执行代码到第一个yiled,第二次去从第二个yield开始执行,直到写出取到最后一个会报stopIteration异常,但是 for循环可以捕获此异常,所以经常和for循环搭配使用,下面博主的文章非常详细的介绍了generator的用法,自己只是再次记录一下笔记以加深记忆,更多请参考
https://www.cnblogs.com/MnCu8261/p/6410594.html