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

How to write a recursive function which performs tasks asynchronously?

如何在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])时异步执行

如果 "would execute asynchronously" 你的意思是 "in parallel",试试这个:

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

    return parsed_url(x)