Logo
TGCATALOG
Catálogo Selecciones Blog
Código en una sirena - Codificación Python

Código en una sirena - Codificación Python

Canal sobre programación en Python y otros idiomas. Explicaciones y códigos simples.

Sin valoraciones
317
26.10.2026
317
26.10.2026
Sin valoraciones
317
26.10.2026
Redirección segura vía bot
О канале

Canal sobre programación en Python y otros idiomas. Explicaciones y códigos simples.

Подписчиков 2,345
Тематика Tecnología
Язык Español
Ссылка t.me/napkincode

También te recomendamos

Kekaton AI  Voz en off y clon de voz
Kekaton AI Voz en off y clon de voz
Bot

bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.

Descripción

Recurso para aquellos interesados en la programación. Enfóquese en Python, pero también cubre otros temas.

Últimas publicaciones

Código en una sirena - Codificación Python
Código en una sirena - Codificación Python
🔒Открыть пост
и посмотреть медиа
Знаете ли вы, что один True может скрыть исключение внутри with? При выходе из with Python вызывает __exit__ и передает туда сведения об исключении, если оно возникло. Если исключение было, то ложное значение, включая None, пропускает исключение дальше; истинное сообщает Python, что оно обработано. При обычном выходе все три аргумента __exit__ равны None, а возвращаемое значение ни на что не влияет: class Ignore: def __enter__(self): return self def __exit__(self, exc_type, exc, tb): return True with Ignore(): 1 / 0 print("эта строка не выполнится") print("а эта выполнится") # а эта выполнится ZeroDivisionError возникает и прерывает выполнение тела блока – print внутри with не выполняется. Но __exit__ вернул True, поэтому исключение не выходит за пределы блока, а traceback необработанного исключения не выводится. Еще __exit__ может случайно вернуть истинное значение, пробросив результат другого метода: class Connection: def __enter__(self): return self def close(self): print("соединение закрыто") return True def __exit__(self, exc_type, exc, tb): return self.close() with Connection(): raise RuntimeError("запрос не прошел") print("выполнение продолжилось") # соединение закрыто # выполнение продолжилось Допустим, метод close() в этом API возвращает True как признак успешного закрытия. Но __exit__ передает этот результат дальше, и Python считает его обработанным исключением. Достаточно написать self.close() без return, и RuntimeError дойдет до вызывающего кода. Осознанное подавление выглядит так же, только с явной проверкой типа исключения: class SuppressZero: def __enter__(self): return self def __exit__(self, exc_type, exc, tb): return isinstance(exc, ZeroDivisionError) with SuppressZero(): 1 / 0 print("выполнение продолжилось") with SuppressZero(): int("текст") # ValueError: invalid literal for int() with base 10: 'текст' Деление на ноль гасится, а ValueError распространяется дальше, потому что для него __exit__ вернул False. По тому же протоколу работает contextlib.suppress из стандартной библиотеки: он подавляет указанные классы исключений и их подклассы. Возвращаемое значение __exit__ решает, выйдет ли возникшее исключение за пределы блока with: любое истинное значение останавливает его распространение. Если __exit__ не должен подавлять ошибки, заканчивайте метод без return или явно возвращайте False. Для намеренного локального подавления используйте contextlib.suppress(...), перечисляя только ожидаемые типы исключений. Код на салфетке × Кусочки кода
Código en una sirena - Codificación Python
Evolución de suscriptores
+-0.5% últimos 30 días
Actuales
2,345
Hace un mes
2,356
Crecimiento medio
+0 / día
Actualizado
hace 1 día

Reseñas de canal Código en una sirena - Codificación Python

Inicia sesión para dejar una reseña

Solo los usuarios registrados pueden compartir su opinión.

Aún no hay reseñas

¡Sé el primero en compartir tu experiencia con este recurso!

Recursos similares

Loading
Cambiar a tema claro
Inicio Catálogo Selecciones Blog Entrar