首页 > 解决方案 > 多次调用运行异步函数的函数:将事件循环放在哪里?

问题描述

我试图多次调用一个函数。该函数在其中运行一个异步函数。代码如下:

 import asyncio

 async def add(x):
     return x + 1


 def my_func(nums):
     loop = asyncio.get_event_loop()   # where should I put this statement?
     res = loop.run_until_complete(
         asyncio.gather(*[add(x) for x in nums]))

     return res


 def main():
     batch1 = [1, 2, 3]
     batch2 = [4, 5, 6]

     print(my_func(batch1))
     print(my_func(batch2))


 if __name__ == "__main__":
     main()

我的问题是我应该把声明放在哪里loop = asyncio.get_event_loop()。我应该把它放在里面my_func还是只是把它放在全局级别并使其成为全局变量,例如,把它放在下面import asyncio

最佳做法是什么?

标签: pythonpython-asyncio

解决方案


推荐阅读