ind*_*112 8 python python-3.x async-await
我试图在python中围绕async/await.
我是在正确的轨道上吗?
async
和@coroutine
函数返回coroutine/generator,而不是返回值.await
提取协程/发生器的实际返回值.
async
函数结果(coroutines)意味着要添加到事件循环中.
await
在事件循环和等待的协程之间创建"桥梁"(启用下一个点).@coroutine
的yield
直接与事件循环通信.(跳过等待结果的直接来电者)
await
只能在异步函数中使用.
yield
只能在里面使用@coroutine
.(@coroutine
= @types.coroutine
)
Jim*_*ard 11
async
和@coroutine
函数返回coroutine/generator,而不是返回值
技术上,types.coroutine
返回一个基于生成器的协程,它与生成器不同,不同于协同程序.
等待提取coroutine/generator的实际返回值.
await
,类似于yield from
,暂停协程的执行,直到它等待完成并返回结果.
async函数结果(coroutines)意味着要添加到事件循环中.
是.
await在事件循环和等待的协程之间创建"桥"(启用下一个点).
await创建一个挂起点,指示事件循环将发生一些I/O操作,从而允许它切换到另一个任务.
@ coroutine的yield直接与事件循环通信.(跳过等待结果的直接来电者)
不,基于生成器的协同程序yield from
以类似的方式使用await
,而不是yield
.
await只能在异步函数中使用.
是.
yield只能在coroutine中使用.
yield from
可以在基于生成器的协同程序(装饰的生成器types.coroutine
)中使用,并且从Python 3.6开始,在async
导致异步生成器的函数中使用.