小编jor*_*xou的帖子

习惯性地从期货的词汇中收集结果

我正在努力写出一些尽可能惯用的东西来收集存储在字典中的期货的结果.

我们假设我有以下代码:

import asyncio

async def sleep(seconds):
    print(f'sleeping for {seconds} seconds')
    await asyncio.sleep(seconds)
    print(f'finished sleeping {seconds} seconds')


async def run():
    tasks = {
        '4': sleep(4),
        '3': sleep(3),
        '2': sleep(2),
        '1': sleep(1),
    }
    print(await gather_from_dict(tasks))


if __name__ == '__main__':
     asyncio.get_event_loop().run_until_complete(run())
Run Code Online (Sandbox Code Playgroud)

我期待的输出是:

sleeping for 2 seconds
sleeping for 1 seconds
sleeping for 4 seconds
sleeping for 3 seconds
finished sleeping 1 seconds
finished sleeping 2 seconds
finished sleeping 3 seconds
finished sleeping 4 seconds
{'4': None, '3': None, '2': None, '1': None} …
Run Code Online (Sandbox Code Playgroud)

python asynchronous idioms python-3.x python-asyncio

14
推荐指数
1
解决办法
1171
查看次数