Python 3.8+astпонятие
ast.TypeIgnore
корень и базовые узлы
Узел комментария # type: ignore: lineno — строка, tag — текст после ignore. Лежит в списке type_ignores корня Module.
Синтаксис
ast.TypeIgnore(lineno, tag)
Комментарии ast не сохраняет, и # type: ignore — исключение лишь при ast.parse(…, type_comments=True); без флага type_ignores всегда пуст. В дерево узел не встраивается: он не потомок инструкции, к которой относится, связь только через номер строки. Тег хранится с квадратными скобками: для # type: ignore[attr] tag равен '[attr]'.
Примеры
import ast
src = 'x = 1\ny = f() # type: ignore[attr]'
print(ast.parse(src).type_ignores) # → []
ti = ast.parse(src, type_comments=True).type_ignores[0]
print(type(ti).__name__, ti.lineno, ti.tag) # → TypeIgnore 2 [attr]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности