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