Python Glossary English

Python 3.11+astпонятие

ast.TryStar

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

Узел try с except* (Python 3.11) для групп исключений; поля те же, что у Try.

Синтаксис

ast.TryStar(body, handlers, orelse, finalbody)

Поля совпадают с Try, и даже обработчики — те же ExceptHandler, поэтому отличить конструкции можно только по типу узла. Обход, написанный для Try (visit_Try), блоки except* не увидит — нужен ещё visit_TryStar. Смешивать except и except* в одном try нельзя: ast.parse выдаст SyntaxError.

Примеры

import ast
t = ast.parse('try:\n    f()\nexcept* ValueError:\n    pass').body[0]
print(type(t).__name__, type(t.handlers[0]).__name__)  # → TryStar ExceptHandler
print(isinstance(t, ast.Try))  # → False

См. также

Частые ошибки

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