首页 文章

通过参数或使用默认的asyncio循环传递asyncio循环

提问于
浏览
16

我对于将事件循环作为参数传递感到困惑 .

使用事件循环编写函数/方法时有三种可能性:

  • 将asyncio事件循环作为参数传递

  • 不要为事件循环使用参数并使用 asyncio.get_event_loop()

  • 使其可选,将事件循环作为参数传递 . 如果未通过,请使用 asyncio.get_event_loop()

似乎最后一种情况大部分时间都在使用,但即使在asyncio api中,使用也是不一致的 . 因为我没有缩进使用两个分离的事件循环,所以只需在需要的地方使用_1027425?

什么是最好的方式?

1 回答

  • 8

    一个好的(如Guido van Rossum称赞的)博客文章讨论这个是Some thoughts on asynchronous API design in a post-async/await world . 随着python核心开发人员的后续讨论here .

    TLDR;

    如果您只使用一个事件循环,则无关紧要 .

    如果你正在管理多个循环, and have python >= 3.6 它几乎没关系:不要使用参数并在需要的地方使用 asyncio.get_event_loop() ,它会给你正确的循环 .

相关问题