698просмотров
8.3%от подписчиков
12 марта 2026 г.
Score: 768
Разбор по шагам 1️⃣Вызывается test() 2️⃣Выполняется блок try, доходим до return 1 3️⃣Python запоминает, что нужно вернуть 1, но перед выходом из функции обязан выполнить блок finally 4️⃣Входим в finally → встречаем return 2 5️⃣Запомненное значение 1 безвозвратно отбрасывается 6️⃣Функция завершается с возвратом 2 7️⃣print(2) выводит 2 Почему это важно
Никогда не используйте операторы управления потоком (return, break, continue) внутри finally. Это антипаттерн: он может скрывать исключения и ломать ожидаемую логику возврата значений из функции.