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