все Python 3astпонятие
ast.While
управление потоком
Узел цикла while: test — условие, body — тело, orelse — ветка else, выполняемая при выходе без break.
Синтаксис
ast.While(test, body, orelse)
Поле orelse почти всегда пустое, и про него забывают при обходе и генерации кода — а там может лежать логика «не нашли». В отличие от For, у While нет target и type_comment. Бесконечный while True: хранит в test Constant(True), а не Name, как было до Python 3.
Примеры
import ast
w = ast.parse('while x:\n x -= 1\nelse:\n done()').body[0]
print(type(w).__name__, w.test.id, len(w.body), len(w.orelse)) # → While x 1 1
t = ast.parse('while True: pass').body[0].test
print(type(t).__name__, t.value) # → Constant True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности