TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4579 863
Развёрнутое пояснение

1️⃣Вызов 𝚒𝚗𝚝("𝚊𝚋𝚌") выбрасывает 𝚅𝚊𝚕𝚞𝚎𝙴𝚛𝚛𝚘𝚛, потому что строка не является числом.

2️⃣Python идёт по 𝚎𝚡𝚌𝚎𝚙𝚝-блокам сверху вниз и проверяет, является ли выброшенное исключение экземпляром указанного класса.

3️⃣Первый блок ловит 𝙴𝚡𝚌𝚎𝚙𝚝𝚒𝚘𝚗; так как 𝚅𝚊𝚕𝚞𝚎𝙴𝚛𝚛𝚘𝚛 наследуется от 𝙴𝚡𝚌𝚎𝚙𝚝𝚒𝚘𝚗, условие выполняется, печатается A, и обработка завершается.

4️⃣Блок 𝚎𝚡𝚌𝚎𝚙𝚝 𝚅𝚊𝚕𝚞𝚎𝙴𝚛𝚛𝚘𝚛 становится «мёртвым кодом» — он никогда не выполнится.

Почему это важно
Правило: более специфичные исключения должны идти перед более общими. Иначе общий 𝚎𝚡𝚌𝚎𝚙𝚝 «съест» все ошибки, и специфичная обработка не сработает. В современном Python (3.11+) на это даже выдаётся SyntaxWarning. Да pyright подсветит, но в учебном примере я специально убрал подсветку.
  • ✍ 1
More from @quiz_python
  1. Sep 21, 2026Развёрнутое пояснение: 1. make_handlers создаёт пустой список handlers. 2. Цикл дважды при…
  2. Sep 21, 2026Post #4880
  3. Sep 21, 2026Развёрнутое пояснение: 1. Вызывается persist_order, и блок try печатает строку write. 2. И…
  4. Sep 21, 2026Post #4878
  5. Sep 14, 2026А вы уже забрали свой подарок ко Дню программиста? Мы в Tproger вместе с нашими друзьями с…
  6. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся список batch с двумя разными словарями. 2. Вызов enric…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →