все Python 3astпонятие
ast.AugAssign
инструкции
Узел составного присваивания x += 1, x *= 2 и т. п.: цель, оператор и значение. Оператор — тот же класс, что в BinOp.
Синтаксис
ast.AugAssign(target, op, value)
Отдельных классов вида IAdd нет: в op лежит обычный Add, Mult и т. д., а отличить += от + можно только по типу самого узла. Цель — одна и не кортеж: a, b += 1 — синтаксическая ошибка; её контекст Store, хотя значение и читается. Старые контексты AugLoad и AugStore здесь не встречаются.
Примеры
import ast
node = ast.parse('total *= 2').body[0]
print(node.target.id, type(node.op).__name__, node.value.value) # → total Mult 2
print(type(node.target.ctx).__name__) # → Store
import ast
try:
ast.parse('a, b += 1')
except SyntaxError:
print('tuple target refused') # → tuple target refused
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности