Logo
TGCATALOG
Catálogo Selecciones Blog
Zen de Python - Zen

Zen de Python - Zen

Guía completa de filosofía y práctica de Python en un canal.

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

Guía completa de filosofía y práctica de Python en un canal.

Подписчиков 18,752
Тематика IT
Язык Español
Ссылка t.me/zen_of_python
Descripción

Zen of Python - canal dedicado a la filosofía y prácticas de Python. Lecciones, guiones, mejores prácticas y materiales para dominar el idioma en Telegram.

Últimas publicaciones

Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медленную функцию. Но после каждой правки снова измерять всю программу неудобно: отчёт приходится фильтровать, а профилировщик добавляет накладные расходы. tprof для Python 3.12+ следит только за выбранными функциями. В режиме сравнения одна функция становится базовой, а столбец delta показывает разницу. В примере sum(range(...)) выполнялся примерно на 62% быстрее цикла с накоплением. Запустить замер можно из командной строки, через контекстный менеджер или декоратор. В разборе Адам Джонсон показывает команды и Python API. tprof работает через sys.monitoring: регистрирует обработчики только для целевых функций, а время измеряет в C. Остальная программа не получает накладных расходов профилировщика.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как писать Python-скрипты, которые удобно запускать в пайплайнах В разборе Bite code! собраны приёмы, которые оставляют однофайловый скрипт простым, но делают его предсказуемым для пользователя. Зависимости указываются в комментарии в начале файла: uv run создаёт временное виртуальное окружение, ставит пакеты и запускает скрипт. Секрет сначала ищется в переменной окружения с префиксом имени скрипта, затем в хранилище ключей ОС, а при отсутствии запрашивается через getpass и сохраняется после проверки. Результат операции отправляйте в stdout, ошибки и журнал в stderr: тогда конвейер получит только данные. Для пользователя оставляйте print(), диагностику включайте через logging по запросу, а переменные окружения перечисляйте в --help через argparse.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как упаковать Go-бинарник в wheel и подключить к Python PyPI может раздавать не только Python-код. go-to-wheel собирает Go-программу в отдельные wheel-пакеты для Windows, macOS и Linux, а pip или uv выбирают сборку под ОС и архитектуру. Внутри пакета лежит бинарник; Python-точка входа находит его и запускает с переданными аргументами. Simon Willison показывает схему на sqlite-scanner: утилиту можно вызвать через uvx sqlite-scanner, а другой Python-пакет может объявить её зависимостью и запускать через subprocess. Пользователю не нужны Go и ручная сборка. PyPI немного выходит за должностную инструкцию, зато граница остаётся явной: Go отвечает за бинарник, Python — за установку и запуск. В статье Simon Willison’s Weblog разобраны структура wheel, команда сборки и пример плагина Datasette.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как collections.deque хранит элементы блоками У deque два конца, поэтому легко представить узел на каждый объект. В CPython звено списка хранит блок до 64 элементов. Соседние блоки связаны в обе стороны, а индексы указывают на первый и последний элементы. При append и pop внутри блока меняются индекс и ячейка. Новый блок нужен, лишь когда крайний заполнен; опустевший крайний блок отсоединяется. Поэтому интерпретатор реже выделяет и освобождает память, чем при отдельном узле на элемент, и deque работает быстрее. В разборе на mathspp.com эта механика собрана в упрощённой Python-реализации для Python 3.15. По коду можно проследить append и pop; левый край устроен симметрично.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Что ускоряет django-msgspec в Django и где он расходится с json django-msgspec заменяет компоненты Django и Django REST Framework аналогами на базе msgspec. Его написанные на C кодировщик и декодировщик JSON работают в несколько раз быстрее стандартной библиотеки. В пакете есть JsonResponse, тестовый клиент и json_script, а сериализаторы сессий и парсеры Django REST Framework подключаются через настройки. Совместимость близка к json, но не полна. Числовые ключи словаря превращаются в строки, большие целые сохраняются. При этом бесконечность кодируется как null, а ключи None и bool вызывают ошибку. Explicit is better than implicit: перед заменой стоит прогнать тесты на реальных данных. В разборе Адама Джонсона есть примеры настройки для ответов, сессий, dumpdata и loaddata, а также Django REST Framework.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Почему миллион чисел в Python занимает 35 МБ Список из миллиона целых, которые помещаются в 64 бита, занимает в CPython около 35 МБ вместо ожидаемых 8 МБ. Из них 8 МБ уходят на указатели списка, ещё 28 МБ на числа: небольшой объект int весит 28 байт. В CPython каждое число является объектом. Кроме значения, у него есть счётчик ссылок и указатель на тип. На 64-битной системе эти служебные поля добавляют минимум 16 байт к каждому объекту. Явное лучше неявного, особенно в профиле памяти. Массив NumPy с типом uint64 хранит значения вместо ссылок на отдельные объекты Python. Поэтому миллион элементов занимает 8 МБ плюс память на импорт библиотеки. В разборе структуры объектов CPython есть замеры и код. Для больших числовых наборов проверьте NumPy до того, как 8 ГБ превратятся в 35 ГБ.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как перевести Python-сервер MCP с FastMCP на SDK 2.x Свежая установка зависимостей сломала сервер автора: в requirements.txt пакет mcp был без ограничения версии, поэтому pip подтянул ветку 2.x, где FastMCP переименовали в MCPServer. Код репозитория не менялся, а прежний импорт перестал работать. Explicit is better than implicit, особенно в файле зависимостей. Миграция начинается с замены импорта и имени класса. Декораторы @mcp.tool(), @mcp.resource() и тела инструментов в этом проекте остались прежними. Затем стоит закрепить mcp>=2,
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Как кэшировать методы чужого Python-клиента Если библиотечный клиент нельзя менять, его методы можно переопределить с functools.lru_cache. Но кеш тогда включает self в ключ и удерживает экземпляр до вытеснения записи или очистки. Питоничнее обернуть уже связанный метод после создания объекта: кеш будет отдельным для каждого экземпляра, поэтому состояния клиентов не смешаются. Для множества методов автор перехватывает обращения через __getattribute__, кеширует метод при первом вызове и сохраняет обёртку в __dict__. Если объект создаёт фреймворк, эту механику можно вынести в прокси. В разборе Caching a lot of methods in Python показано, как вернуть прокси автодополнение через __dir__ и проверки isinstance() через wrapt.ObjectProxy. Для пары методов решение проще: заменить их кешированными прямо у готового объекта.
Zen de Python - Zen
Zen de Python - Zen
🔒Открыть пост
и посмотреть медиа
Где заканчивается ускорение NumPy и что выбрать дальше Векторизация выполняет цикл низкоуровневым кодом. В тесте прибавление 17 к 100 млн элементов заняло 6,13 секунды для списка CPython и 0,07 секунды для массива NumPy. Предел виден, когда нужной операции нет в NumPy или вычисление создаёт промежуточный массив. np.abs(arr).mean() для массива на 1 ГБ выделяет ещё 1 ГБ под абсолютные значения. Цикл Python убирает копию, но возвращает расходы интерпретатора. В разборе Python⇒Speed решения разделены по задаче. PyPy ускоряет циклы по обычным объектам, но плохо сочетается с NumPy. Numba компилирует функции для NumPy. Cython, Rust, C и C++ позволяют собрать расширение заранее. «Явное лучше неявного» работает и для оптимизации: выбирайте инструмент по форме узкого места.
Zen de Python - Zen
Evolución de suscriptores
+-0.4% últimos 30 días
Actuales
18,752
Hace un mes
18,830
Crecimiento medio
+-3 / día
Actualizado
hace 5 horas

Reseñas de canal Zen de Python - Zen

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