我对于将事件循环作为参数传递感到困惑 .
使用事件循环编写函数/方法时有三种可能性:
-
将asyncio事件循环作为参数传递
-
不要为事件循环使用参数并使用
asyncio.get_event_loop()
-
使其可选,将事件循环作为参数传递 . 如果未通过,请使用
asyncio.get_event_loop()
似乎最后一种情况大部分时间都在使用,但即使在asyncio api中,使用也是不一致的 . 因为我没有缩进使用两个分离的事件循环,所以只需在需要的地方使用_1027425?
什么是最好的方式?
1 回答
一个好的(如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()
,它会给你正确的循环 .