总结
按照鸭子模型理论,生成器就是一种迭代器,可以使用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)!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did86355