все Python 3astпонятие
ast.Assign
инструкции
Узел инструкции присваивания =: список целей targets, значение value и type_comment. Цепочка a = b = 1 — один узел с двумя целями.
Синтаксис
ast.Assign(targets, value, type_comment=None)
targets — список ради цепочек: a = b = 1 даёт две цели, а распаковка a, b = 1, 2 — одну цель Tuple. С аннотацией (x: int = 1) это уже AnnAssign, с += — AugAssign, а x := 1 внутри выражения — NamedExpr; поиск всех присваиваний обязан смотреть на все четыре. У целей контекст Store.
Примеры
import ast
node = ast.parse('a = b = 1').body[0]
print([t.id for t in node.targets], node.value.value) # → ['a', 'b'] 1
pair = ast.parse('a, b = 1, 2').body[0]
print(len(pair.targets), type(pair.targets[0]).__name__) # → 1 Tuple
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности