await关键字在Python中有什么作用?

时间:2015-07-08 11:51:16

标签: python asynchronous async-await python-3.5

带有PEP 492的Python 3.5为协同程序和 awaitables 引入了特殊语法,并按如下方式说明了await关键字:

  

以下新的await表达式用于获取协程执行的结果:

async def read_data(db):
    data = await db.fetch('SELECT ...')
    ...
     与await类似,

yield from暂停执行read_data协程,直到db.fetch等待完成并返回结果数据。

它继续定义 awaitables 可以是coroutines或类似Future的对象,具有类似Future的对象的特定定义。 但是,尽管阅读了PEP,我还是不太了解await的特殊之处。在上述PEP引用的行中,谁返回结果数据 - awaitread_data(或两者)?当然,无论我如何拨打db.fetch('SELECT ...')(直接使用yield from,或使用await),read_data都不会继续,直到获得某些内容(可能是None)来自db.fetch?那么关于await有什么特别之处?它与async有什么关系?

显然,我错过了一些东西。

0 个答案:

没有答案