Python Glossary English

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

ast.stmt

корень и базовые узлы

Абстрактный базовый класс всех инструкций: присваивания, if, for, def, import, return и других. Элементы списков body — всегда stmt.

Синтаксис

isinstance(node, ast.stmt)

Главная ловушка — узел Expr: вызов f(x) на отдельной строке — это инструкция Expr (наследник stmt), а сам вызов лежит в её поле value и является expr. У всех stmt есть lineno, col_offset, end_lineno, end_col_offset; isinstance(n, ast.stmt) удобно отбирает «строки программы» при обходе walk.

Примеры

import ast
tree = ast.parse('x = 1\nprint(x)')
print([type(s).__name__ for s in tree.body])  # → ['Assign', 'Expr']
print(all(isinstance(s, ast.stmt) for s in tree.body))  # → True
print(isinstance(tree.body[1].value, ast.stmt))  # → False

См. также

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