все Python 3astпонятие
ast.excepthandler
управление потоком
Абстрактный базовый класс обработчиков исключений; единственный наследник — ExceptHandler. Список handlers у Try и TryStar состоит из них.
Синтаксис
isinstance(h, ast.excepthandler)
В отличие от многих служебных узлов, у обработчиков есть позиции lineno и col_offset. Голый except: даёт ExceptHandler с type=None — так линтер находит запрещённый перехват всего подряд. Поле name — строка (имя после as) или None, а не узел Name.
Примеры
import ast
src = 'try:\n f()\nexcept ValueError as e:\n pass\nexcept:\n pass'
for h in ast.parse(src).body[0].handlers:
kind = ast.unparse(h.type) if h.type else None
print(type(h).__name__, kind, h.name, h.lineno)
# → ExceptHandler ValueError e 3 / ExceptHandler None None 5
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности