我已经读完了this tutorial个关于异步表的理解.现在我想try 一下异步判决书的理解.以下是要复制的代码:
import asyncio
async def div7_tuple(x):
return x, x/7
async def main():
lost = [4, 8, 15, 16, 23, 42]
awaitables = asyncio.gather(*[div7_tuple(x) for x in lost])
print({k: v for k, v in awaitables})
if __name__ == '__main__':
asyncio.run(main())
但是,这会导致一个异常:
> RuntimeError: await wasn't used with future
> sys:1: RuntimeWarning:coroutine 'div7_tuple' was never awaited
如何用asyncio.gather()
美元做到这一点?
奇怪的是,这不适用于以未排序的方式构造未排序的对象,因为如果我try 以一种排序的方式进行try ,它就会起作用:
async def div7(x):
return x/7
async def main2():
lost = [4, 8, 15, 16, 23, 42]
print({k: await v for k, v in [(x, div7(x)) for x in lost]})