我在我的应用程序中使用asyncio,我对将事件循环作为参数传递感到困惑。
使用事件循环编写函数/方法时有三种可能性:
asyncio.get_event_loop()
asyncio.get_event_loop()
似乎最后一种情况大部分时间都在使用,但即使在asyncio api中,使用也是不一致的。因为我没有缩进使用两个单独的事件循环,而在需要的地方只使用asyncio.get_event_loop()
会反对什么?
最好的方法是什么?
答案 0 :(得分:8)
一个好的(正如Guido van Rossum所称赞的)博客文章讨论的是Some thoughts on asynchronous API design in a post-async/await world。随着python核心开发人员here的后续讨论。
TLDR;
如果您只使用一个事件循环,则无关紧要。
如果您正在管理多个循环,并且有python> = 3.6 ,那么大多数都无关紧要:不要使用参数并在需要时使用asyncio.get_event_loop()
,它会给你正确的循环。