Logo
TGCATALOG
Catalog Collections Blog
Zen of Python - Zen

Zen of Python - Zen

Complete guide to Python philosophy and practice in one channel.

No ratings
750
25.10.2026
750
25.10.2026
No ratings
750
25.10.2026
Safe redirect via bot
О канале

Complete guide to Python philosophy and practice in one channel.

Подписчиков 18,752
Тематика IT
Язык English
Ссылка t.me/zen_of_python
Description

Zen of Python - channel dedicated to Python philosophy and practices. Lessons, scripts, best practices and materials for mastering the language in Telegram.

Latest posts

Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Потоки ускоряют ввод-вывод, пока мелкая работа не упирается в процессор Вы увеличиваете число рабочих потоков ThreadPoolExecutor, настраиваете пул соединений, а пропускная способность перестаёт расти. Даже короткий вычислительный участок повторяется в каждом задании и постепенно отбирает выигрыш от новых потоков. Перейти на ProcessPoolExecutor можно, но тогда вход приходится разбивать на пачки, менять код и платить памятью за процессы. Автор собирает гибрид: несколько процессов, внутри каждого пул потоков, с привычным интерфейсом исполнителя задач. В разборе ProcessThreadPoolExecutor остались возврат результатов через собственные объекты Future, гибель рабочего процесса и влияние свободнопоточного Python на всю конструкцию.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Когда isinstance() мало, TypeGuard может удивить С isinstance() всё просто: mypy сам сужает объединение типов в каждой ветке. Сложнее, если объект приходится распознавать по содержимому, например проверять поля словаря. Тогда проверку выносят в отдельный предикат, а TypeGuard сообщает анализатору, какой тип прошёл условие. На этом месте интуиция может подвести: автор несколько раз отказывался от TypeGuard и заканчивал комментарием # type: ignore. В разборе TypeGuard и TypeIs он начинает с TypedDict для Person и объясняет, почему TypeIs соответствует ожиданиям лучше. Стоит прочитать перед следующим пользовательским предикатом: в статье осталось главное, почему TypeIs оказался тем интерфейсом, которого автор ожидал от TypeGuard.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Атрибуты модуля можно создавать только при обращении Если часть API не нужна во время запуска, готовить её заранее необязательно. Начиная с Python 3.7, в модуле можно определить __getattr__: он обрабатывает обращение к имени, которого в модуле нет. Для нужного имени функция возвращает динамически созданное значение, для остальных поднимает AttributeError. Так создание атрибута переносится на момент, когда он действительно понадобился, а запуск не ждёт этой работы. Лень здесь вполне питонична, пока ошибка для неизвестных имён остаётся явной. В разборе атрибутов модуля есть минимальный пример с обычной функцией, динамическим атрибутом и AttributeError для неизвестного имени.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Все дела подождут, потому что сегодня ваш день! Поздравляем с Днем программиста и желаем меньше багов и больше фич, меньше созвонов и больше фокуса, меньше тасок с пометкой «срочно» и больше времени на отдых. Забирайте подарок из нашей IT-коробки. Мы уверены, этот презент точно пригодится вам в работе: Ссылка скрыта
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Сигналы Django подводят в критичных сценариях, но получателей можно выполнять надёжнее Сигналы Django удобно разрывают зависимости между модулями. В обработке платежа этого мало: способ доставки сигналов остаётся подвержен неожиданным сбоям. Слабая связанность полезна, но надёжность от неё не появляется. Альтернативный способ запускает получателей как фоновые задачи Django Tasks. В материале решение проверяют на процессе создания платежа и заказа, связывают с транзакциями базы данных, моделируют сбои и отдельно рассматривают атомарность. В статье Reliable Django Signals остались тесты надёжных сигналов, ограничения подхода и направления дальнейшей работы. Стоит прочитать до того, как доверить сигналам этап процесса, который нельзя потерять из-за неожиданного сбоя.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Контекст запроса можно добавить во все логи без ручного extra В ASGI-приложении запрос заканчивается не там, где начался: обработчик вызывает корутины из других слоёв, и каждая пишет собственные сообщения. Если добавить user_id и platform через extra только в обработчике, запись из вложенной функции останется без этих полей. Явное лучше неявного, но собирать один и тот же контекст в каждом слое и вручную передавать его дальше — дорогая трактовка PEP 20. В разборе распространения контекста логов показано, как общие поля попадают в сообщения из разных слоёв ASGI-приложения без ручной передачи по всей цепочке вызовов.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Как выбрать быстрый способ читать Excel из Python без сюрпризов с типами Когда в Python нужно разобрать большой XLSX, привычный Pandas оказывается лишь одной из шести опций. Сравнивать их только по секундомеру мало: ещё важны сохранность типов и корректность значений. Питоничность здесь начинается с контракта: каждая реализация возвращает Iterator[dict[str, object]], поэтому потребитель может обрабатывать строки по одной. Для теста взяли файл на 25 МБ с 500 тысячами строк, а время измеряли полным проходом без обработки данных. В сравнении Haki Benita остались итоговые замеры для Pandas, Tablib, Openpyxl, LibreOffice, DuckDB и Calamine, а также разбор типов и корректности. Полезный ориентир перед тем, как ставить очередную зависимость ради одной таблицы.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Как найти хеш пароля в 37 ГБ меньше чем за миллисекунду Офлайн-проверка пароля по списку утечек выглядит как обычный поиск, пока Pwned Passwords не распаковывается в текстовый файл на 37 ГБ. Минимальный вариант на Python работает, но оказывается слишком медленным. Автор профилирует код, пробует пропускать части файла, применяет двоичный поиск, строит отдельный индекс и переводит его в двоичный формат. Вполне по дзену: сначала измерить, потом усложнять. Результат: поиск занимает меньше миллисекунды. В разборе оптимизации можно проследить, почему первые ускорения не уложились в цель, как генерируется и читается индекс и какие структуры данных автор рассматривает в финале.
Zen of Python - Zen
Zen of Python - Zen
🔒Открыть пост
и посмотреть медиа
Внешние ключи Django могут оставить лишние индексы и заблокировать миграцию В модели всё выглядит аккуратно: несколько ForeignKey, on_delete=PROTECT и unique_together. Но внешний ключ связывает две таблицы, поэтому обеспечить такое ограничение сложнее, чем уникальность или проверку значения. Явное лучше неявного, а неявного поведения здесь хватает. Статья How to Get Foreign Keys Horribly Wrong разбирает, где появляются дублирующие индексы и как обнаружить блокирующую миграцию. Затем переходит к безопасному переносу внешнего ключа, обратимым операциям и конкурентному созданию индексов. Перед следующим изменением схемы по ссылке стоит проверить ещё две вещи: когда нужен частичный индекс и в каком порядке выполнять миграционные операции.
Zen of Python - Zen
FAQ

Open Zen of Python - Zen in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Zen of Python - Zen directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Zen of Python - Zen.

The exact features depend on the resource. Open Zen of Python - Zen to see its current functions, content and access conditions.
Subscriber dynamics
+-0.4% last 30 days
Current
18,752
Month ago
18,830
Average growth
+-3 / day
Updated
21 hours ago

Reviews for channel Zen of Python - Zen

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login