Python Glossary English

все 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Сообщить о неточности