Python 3.3+astпонятие
ast.withitem
управление потоком
Узел одного менеджера контекста в with: context_expr — выражение, optional_vars — цель после as или None. Список items у With и AsyncWith.
Синтаксис
ast.withitem(context_expr, optional_vars=None)
with open(a) as f, open(b) as g — один With с двумя withitem, а не вложенные With. Цель после as — выражение в контексте Store: обычно Name, но может быть кортеж (as (x, y)) или атрибут. У withitem нет своих позиций, только у With.
Примеры
import ast
w = ast.parse('with open(a) as f, lock:\n pass').body[0]
for item in w.items:
target = item.optional_vars.id if item.optional_vars else None
print(ast.unparse(item.context_expr), target) # → open(a) f / lock None
print(type(w.items[0].optional_vars.ctx).__name__) # → Store
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности