python - 多次调用运行异步函数的函数:将事件循环放在哪里?
问题描述
我试图多次调用一个函数。该函数在其中运行一个异步函数。代码如下:
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
。
最佳做法是什么?
解决方案
推荐阅读
- android - 使用来自 json 源的数组适配器填充可搜索微调器
- hasura - hasura 是否生成索引?
- java - 如何调用存在于一个类中的参数化构造函数,该类中用@Component注释的另一个类注释@Service
- python - 关于属性对象如何为这个私有变量提供接口的问题
- java - Reactor Flux 和 Java Fiber 的区别
- r - 如何在 Rmarkdown 中整齐地显示数百个图?
- javascript - 从 json 字符串转换为 json 对象后,如何从 Typescript 中的对象数组中获取结果,我的编码有什么问题
- java - 这两种并发实现中哪一种更好更快
- java - Java 文件输出:卡片组的数字格式错误,卡片数量仅在运行时知道
- javascript - 如何在不格式化代码的情况下从 Webpack 的包中删除注释?