Python Glossary English

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

ast.For

управление потоком

Узел цикла for: цель target, итерируемое iter, тело body, ветка else в orelse и type_comment.

Синтаксис

ast.For(target, iter, body, orelse, type_comment=None)

Ветка else цикла лежит в orelse и исполняется, если цикл не прервали break, — пустой список значит, что else нет. Цель с распаковкой for i, x in … — Tuple с контекстом Store. Цикл в async def с async for — другой класс, AsyncFor, и visit_For его не увидит; генераторы списков тоже не For, а comprehension внутри ListComp.

Примеры

import ast
src = 'for i, x in enumerate(s):\n    pass\nelse:\n    done()'
node = ast.parse(src).body[0]
print(type(node.target).__name__, type(node.target.ctx).__name__)  # → Tuple Store
print(node.iter.func.id, len(node.orelse))  # → enumerate 1

См. также

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