好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

深入理解Python中的生成器

总结

按照鸭子模型理论,生成器就是一种迭代器,可以使用for进行迭代。

第一次执行next(generator)时,会执行完yield语句后程序进行挂起,所有的参数和状态会进行保存。
再一次执行next(generator)时,会从挂起的状态开始往后执行。
在遇到程序的结尾或者遇到StopIteration时,循环结束。

可以通过generator.send(arg)来传入参数,这是协程模型。

可以通过generator.throw(exception)来传入一个异常。throw语句会消耗掉一个yield。
可以通过generator.close()来手动关闭生成器。

next()等价于send(None)

以上就是深入理解Python中的生成器的内容,更多相关文章请关注PHP中文网(www.gxlcms.com)!

查看更多关于深入理解Python中的生成器的详细内容...

  阅读:46次