在事件循环(https://docs.python.org/3.6/library/asyncio-task.html#coroutines)中的corutine的工作流程中
我找到了一个描述以下代码的图,但是从睡眠直接到任务的方向向左箭头让我感到困惑。为什么睡眠直接返回任务?
import asyncio
async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y
async def print_sum(x, y):
result = await compute(x, y)
print("%s + %s = %s" % (x, y, result))
loop = asyncio.get_event_loop()
loop.run_until_complete(print_sum(1, 2))
loop.close()
该图如下所示: enter image description here
我想知道为什么睡眠可以直接返回任务,甚至返回循环并再次返回返回值(“ return 1 + 2”)。