我对Python和ECMAScript中的生成器的理解是,它们比普通生成器更强大。例如,它们都允许通过next()将值传递回生成器,并且都允许从另一个生成器(Python中的yield from和ES6中的yield * )生成,这是生成器中不需要的两件事。
那么,考虑到这种扩展的功能,在Python和ES6中实现的生成器是否与协程相同?有什么不同吗?
发布于 2015-08-08 18:54:18
从yield from上的PEP 380
生成器是协程的一种形式,但它有一个限制,即它只能屈从于它的直接调用者。
协程是一个遵循特定约定的生成器。出于文档目的,所有协程都应该使用@asyncio.coroutine进行修饰,但这不能被严格执行。
生成器是有限协同例程的一种形式。对于ES2015生成器也应该是如此。
https://stackoverflow.com/questions/31892128
复制相似问题