Русский
Открыть в Telegram

Сообщениеfinally мовчки затирає твій return

2 октября 2026
P
finally мовчки затирає твій return Погляньмо на функцію: def f(): try: return "from try" finally: return "from finally" f() # "from finally" Здавалося б, return "from try" мав спрацювати. Але finally виконується завжди - навіть після return. І якщо в ньому є свій return, він перекриває той, що був у try. Те саме з винятками: return у finally проковтне навіть виняток, який мав вилетіти назовні. def g(): try: raise ValueError("boom") finally: return "all good" g() # "all good", виняток зник Помилка сталася, але про неї ніхто не дізнається. Такий баг ловиться довго, бо код виглядає цілком робочим. Висновок: finally тримай тільки для очищення (закрити файл, зʼєднання, відпустити лок). Ніяких return чи raise всередині - інакше він тихо перепише всю логіку вище.
👍1
1 · 120 ·

Рядом в ленте

PPython Nation🐍🇺🇦Чому 256 is 256 - True, а 257 is 257 - не завжди У пайтоні є оператор is, який перевіряє не рівність значень, а те, чи це один і той самий обʼєкт у памʼяті. І тPPython Nation🐍🇺🇦Чому None перевіряють через is, а не == У пайтоні прийнято писати if x is None, а не if x == None. І це не просто стиль. None - це єдиний обʼєкт на всю програму
это сообщение
PPython чат для початківцівPython чат для початківців@pythonnewbie · группа · Технологии
48участников1пишущих за 30 дней
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем