Python Glossary English

Python 3.5+astпонятие

ast.Await

async

Узел выражения await: ожидаемый объект в поле value. Чаще всего стоит внутри Expr или справа от присваивания.

Синтаксис

ast.Await(value)

Await — выражение, а не инструкция: строка await g() в теле — это Expr(Await(Call)), и вызов надо доставать через два уровня. ast.parse('await x') на уровне модуля проходит, а ошибку 'await' outside function даёт только compile() (кроме флага PyCF_ALLOW_TOP_LEVEL_AWAIT, на котором работает python -m asyncio).

Примеры

import ast
fn = ast.parse('async def f():\n    await g()').body[0]
stmt = fn.body[0]
print(type(stmt).__name__, type(stmt.value).__name__, stmt.value.value.func.id)  # → Expr Await g
import ast
tree = ast.parse('await x')
try:
    compile(tree, '<src>', 'exec')
except SyntaxError as e:
    print(e.msg)  # → 'await' outside function

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности