все Python 3astпонятие
ast.Break
управление потоком
Узел инструкции break без полей: прерывает ближайший цикл. В дереве это просто элемент списка body.
Синтаксис
ast.Break()
ast.parse('break') проходит без ошибки — проверку «break вне цикла» делает компилятор, и SyntaxError появится только в compile(). Поэтому дерево из parse() ещё не гарантирует исполнимый код. У узла _fields пуст, но координаты lineno и col_offset есть, как у любой инструкции.
Примеры
import ast
tree = ast.parse('break')
print(type(tree.body[0]).__name__, ast.Break._fields) # → Break ()
try:
compile(tree, '<src>', 'exec')
except SyntaxError as e:
print(e.msg) # → 'break' outside loop
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности