Python 3.6 异步函数以最简单的方式遍历循环



我需要做的就是编写一个简单的异步函数来返回一些东西。类似于的东西

async def diss(lis):
x = []
for i in lis:
x.append(i + 1) #the operation is arbitrary, but the input and output of a list is the desired result
return x
lis = [1, 2, 3, 4]
res = await diss(lis)

但是,这给了我在等待diss(lis(的语法错误

我在网上找到的只是教程,其中某些内容打印在异步函数中,但是当尝试返回某些内容时,我总是收到协程或未来对象。

我的目标是基本上让循环异步运行,以提高性能,然后返回一些东西

你来了:

import asyncio

async def diss(lis):
x = []
for i in lis:
x.append(i + 1)
return x

async def main():
lis = [1, 2, 3, 4]
res = await diss(lis)
return res

loop = asyncio.get_event_loop()
res = loop.run_until_complete(main())
print(res)

确保您首先了解为什么以及何时使用 asyncio。例如,没有必要使代码高于异步。

通常,只有当您有多个 I/O 操作时,才可能需要asyncio,这些操作可以与asyncio.gather()并行化。

async def diss(lis):
x = []
for i in lis:
x.append(i + 1)
return x
async def dat():
res = await diss(lis)
return res
loop = asyncio.get_event_loop()
done, _ = loop.run_until_complete(asyncio.wait([dat()]))
for fut in done:
a = fut.result()

是我为解决 a 是预期结果的问题所做的。这有什么问题吗?

相关内容

  • 没有找到相关文章

最新更新