Python Glossary English

все Python 3astпонятие

ast.Del

переменные

Контекст удаления: стоит в поле ctx у Name, Attribute и Subscript, которые являются целями инструкции del. Соседи — Load (чтение) и Store (запись).

Синтаксис

ast.Name(id, ctx=ast.Del())

Del — это не сама инструкция del, а метка у её целей; инструкцию представляет ast.Delete. В del a[0] контекст Del получает только Subscript, а выражение a внутри него читается и остаётся с Load. При ручной сборке дерева для compile() контекст обязан совпадать с ролью узла, иначе компилятор откажет с ValueError.

Примеры

import ast
target = ast.parse('del a[0]').body[0].targets[0]
print(type(target).__name__, type(target.ctx).__name__)  # → Subscript Del
print(type(target.value.ctx).__name__)  # → Load

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности