Logo
TGCATALOG
Каталог Подборки Блог
Zen of Python - дзен

Zen of Python - дзен

Полный гид по философии и практике Python в одном канале.

Нет оценок
751
25.10.2026
751
25.10.2026
Нет оценок
751
25.10.2026
Безопасный переход через бот
О канале

Полный гид по философии и практике Python в одном канале.

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

Zen of Python - канал, посвящённый философии и практикам Python. Уроки, скрипты, лучшие практики и материалы для освоения языка в Telegram.

Последние посты

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

Отзывы о канале Zen of Python - дзен

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход