Python Glossary English

все Python 3astпонятие

ast.With

управление потоком

Узел инструкции with: items — список withitem (выражение и необязательная цель as), body — тело.

Синтаксис

ast.With(items, body, type_comment=None)

Несколько менеджеров в одной строке — один With с несколькими items, а не вложенные узлы; при этом вложенный with — отдельный With в body, и дерево двух записей различается. Цель as хранится в optional_vars и равна None, если её нет. Асинхронный async with — другой узел, AsyncWith. До Python 3.3 полей было иначе (context_expr прямо в With).

Примеры

import ast
w = ast.parse('with open(p) as f, lock:\n    pass').body[0]
print(type(w).__name__, len(w.items))  # → With 2
print(w.items[0].optional_vars.id, w.items[1].optional_vars)  # → f None

См. также

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