如何编写一个异步执行任务的递归函数?

时间:2017-03-05 07:39:22

标签: python-3.x asynchronous recursion async-await python-asyncio

如何在python中创建递归协同程序函数?

import asyncio

def fetch_url(x):
    if isinstance(x, list):
        return map(fetch_url, x)
    else:
        return parsed_url(x)

即调用double(10)时,函数将同步执行,而在调用double([2,3,4])时,它将异步执行。

1 个答案:

答案 0 :(得分:2)

如果“将异步执行”意味着“并行”,请尝试:

async def fetch_url(x):
    if isinstance(x, list):
        return await asyncio.gather(*[fetch_url(url) for url in x])

    return parsed_url(x)