1
A
回答
2
PEP 525 -- Asynchronous Generators的用途与引入生成器的PEP 255 -- Simple Generators非常相似。它主要是为了使更简单来实现,只在不同的域(异步)。从PEP 525开始:
从本质上讲,应用于异步执行情况的PEP 255的目标和基本原理也适用于此提议。
简而言之,它使写作对象容易支持asynchronous iteration protocol。由于发生器做了迭代器协议。
而不是必须定义实现__aiter__
和__anext__
的对象,而是创建一个异步生成器,这看起来像是通过魔术来实现的。这反映了发生器为迭代器协议所做的事情;而不是为一个对象实现__iter__
和__next__
,您可以创建一个生成器。
这在PEP 525的理性中很好地陈述了,它还包含一个很好的示例,显示了使用异步生成器编写代码时所节省的成本。
除了码长的储蓄,异步发电机也执行好得多:
性能是本提案补充一点:在我们的参考实现的测试,异步发电机的2倍比实现同等更快作为异步迭代器。
就在这里补充一些术语,因为它越来越难以跟上方面的跟踪有时:
- 发电机:包含一个或多个
yield
表达式def
功能。 - 基于生成器的协同程序:由
types.coroutine
包装的生成器(def
+yield
)。如果需要将其包含在协同对象中,则需要将其包装在types.coroutine
中。 - 异步生成器:
async def
包含一个或多个yield
表达式的函数。这些还可以包含await
表达式。 - 协同程序:
async def
没有零个或多个await
s和没有yield
s。
相关问题
- 1. 正常功能和发电机功能有什么区别?
- 2. 发电机功能性能
- 3. 发电机功能与pymongo
- 4. 发电机是否知道发电机功能?
- 5. 什么是发电机功能的返回类型提示?
- 6. 为什么通过发电机进入发电机使用其发电机功能?
- 7. 产量(发电机)的功能
- 8. ES6发电机功能与承诺
- 9. 从发电机功能返回承诺?
- 10. 发电机功能不工作python
- 11. django - 视图发电机功能
- 12. 使用Flask Cache与发电机功能
- 13. 使用发电机功能蟒蛇
- 14. 自发电功能?
- 15. TMC222步进电机控制器,电机繁忙功能
- 16. 是否有可能建议子类化发电机功能?
- 17. 为什么发电机不能酸洗?
- 18. pydev不能在发电机中步骤
- 19. 如何使用“等待”发电机功能是ES6?
- 20. “发电机”和“脚手架”有什么区别?
- 21. 什么是功能手机(非智能手机)Html/CSS基本功能和DocTypes?
- 22. 什么是触发功能
- 23. 设置主机和执行功能有什么区别?
- 24. ScalaCheck的发电机与ScalaTest的行为功能
- 25. 智能手机/平板电脑开发之间的区别?
- 26. Python的逆功率集发电机
- 27. 如何获得发电机功能的多个实例
- 28. 发电机功能不会产生适当的值
- 29. 获取发电机功能的价值,koa
- 30. 不能在打字稿与发电机编译异步代码
简历选民,如果问题太广泛,我提供的长度的答案将是不可能的。不要胡乱投票。 –