如何在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])
时,它将异步执行。
答案 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)