все Python 3astпонятие
ast.Tuple
литералы
Узел кортежа: elts — элементы, ctx — Load или Store. Создаётся запятой, а не скобками: и 1, 2, и цель a, b = … — это Tuple.
Синтаксис
ast.Tuple(elts, ctx=ast.Load())
(1) разбирается в Constant, а 1, — в Tuple: кортеж делает запятая. Tuple возникает и там, где скобок не видно: d[1, 2] даёт Subscript со slice-кортежем, return a, b — Return с Tuple, a, b = b, a — Tuple и слева (Store), и справа (Load). Пустой () — Tuple с пустым elts.
Примеры
import ast
for src in ('(1)', '1,', '()'):
print(type(ast.parse(src, mode='eval').body).__name__) # → Constant / Tuple / Tuple
import ast
n = ast.parse('a, b = b, a').body[0]
print(type(n.targets[0].ctx).__name__, type(n.value.ctx).__name__) # → Store Load
print(type(ast.parse('d[1, 2]', mode='eval').body.slice).__name__) # → Tuple
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности