0
0 Комментариев

При написании кода по обработке помимо необязательного finally блока есть еще и необязательный else блок. Напомню, что этот блок кода выполняется если try блок завершился успешно, без летящих исключений.

Вопрос: Зачем нужен else блок, если все можно поместить в try блок?

Об этом вопросе уже было обсуждение в англоязычной версии SO: Python try-else. Но опять же, на мой взгляд, нет ясного и конкретного ответа, когда без else блока действительно нельзя обойтись и лучше с ним.

Пока мое понимание на уровне правила(сформулировал сам, независимо от кого-либо): Если понадобился else блок, то код функции сложноват. Код в else следует поместить в отдельный метод и вызывать не в том куске кода, где хочется написать else, а уровнем по выше, т.е. более высокоуровневой функции.


Добавить комментарий