uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Zen of Python

Zen of Python

Kanalga Telegram’da o‘tish

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Ko'proq ko'rsatish

📈 Telegram kanali Zen of Python analitikasi

Zen of Python (@zen_of_python) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 18 718 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 007-o'rinni va Rossiya mintaqasida 35 217-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 18 718 obunachiga ega bo‘ldi.

28 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -100 ga, so‘nggi 24 soatda esa -10 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 6.22% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.24% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 165 marta ko‘riladi; birinchi sutkada odatda 793 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 1 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent github, rust, pip, api, install kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL”

Yuqori yangilanish chastotasi (oxirgi ma’lumot 29 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

18 718
Obunachilar
-1024 soatlar
-467 kun
-10030 kun
Postlar arxiv
Для тех, кто чувствует, что может больше в IT Когда начинаешь щёлкать старые рабочие задачи как орешки, приходит время прокач
Для тех, кто чувствует, что может больше в IT Когда начинаешь щёлкать старые рабочие задачи как орешки, приходит время прокачиваться до мидла или сеньора. Усилить экспертизу поможет новое направление курсов Яндекс Практикум PRO. Оно создано специально для практикующих специалистов в IT-профессиях: программировании, анализе данных, работе с нейронками, продакт- и проджект- менеджменте. Здесь обучают на реальных кейсах и помогают углубить знания в выбранной сфере. И эти навыки точно понадобятся каждому, кто задумывается о переходе с позиции джуна. Вся информация о курсах собрана здесь. Это #партнёрский пост

​​Импортозамещение Trello, Jira и Confluence — подборка для разработчиков На Tproger представили подборку российских альтернатив Trello, Jira и Confluence с акцентом на коллективное хранения документов. В статье вы найдете инструменты, которые позволяют управлять процессами, задачами и документацией в одном пространстве, без разделения между трекером и хранилищем знаний. Инструменты соответствуют ФЗ-152 (о персональных данных) — все решения размещаются на отечественных серверах или поддерживают on-premise. Среди разбираемых продуктов есть как простые таск-системы, так и комплексные платформы с удобным редактором, версионированием и автоматической миграцией контента из зарубежных сервисов. @prog_tools

super(): как это работает Сегодня мы разберём одно из ключевых понятий объектно-ориентированного программирования в Python — super(). Когда мы работаем с наследованием, то порой сталкиваемся с дублированием кода:

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def raise_salary(self, amount):
        self.salary += amount


class Manager(Employee):
    def __init__(self, name, salary, department):
        self.name = name
        self.salary = salary
        self.department = department
На первый взгляд, всё верно. Но посмотрите внимательно — часть кода в Manager.__init__ дублирует логику базового класса Employee. В больших проектах уследить за всеми такими повторениями становится трудоемко. Решение простое — использовать super():

class Manager(Employee):
    def __init__(self, name, salary, department):
        super().__init__(name, salary)
        self.department = department
Теперь Manager вызывает конструктор базового класса Employee, а значит: 🔘 Код становится короче; 🔘 Меньше ошибок при рефакторинге. Как это работает под капотом Многие думают, что super() — это функция. На самом деле это класс. При его вызове возвращается прокси-объект, который даёт доступ к методам родительского класса. То есть строка:

super().__init__(name, salary)
означает:
«Возьми ближайший родительский класс в иерархии и вызови его метод `__init__()`».
Что важно помнить 🔘 super() работает не только в __init__. Его можно использовать в любых методах, которые переопределяются в подклассе; 🔘 Можно вызывать super() без аргументов — контекст определяется автоматически; 🔘 В сложных системах с множественным наследованием super() работает через механизм Method Resolution Order (MRO). Это гарантирует, что каждый базовый класс вызывается ровно один раз. #основы @zen_of_python

Дайте два 😮‍💨 Напомним, как всё было: летом вы голосовали за концепт и дизайн упаковки нашего фирменного напитка — между ТИПИЧНЫМ и ТОКСИЧНЫМ. Предсказуемо победил ТОКСИЧНЫЙ ПРОГРАММИСТ. Лимитка получилась настолько удачной, что понадобился ещё один релиз. Paradox уже выкатили коллаб в продажу, а мы запускаем новый розыгрыш — 3 победителя получат коробку «ТОКСИЧНЫЙ ПРОГРАММИСТ» с шестью банками. Подробнее с правилами можно ознакомиться здесь. Чтобы участвовать, нужно: — быть подписанным на @tproger и @paradox_beer; — оставить реакцию под этим постом; — нажать кнопку «Участвую». Итоги подведём 27 октября. Победителей выберем с помощью бота. А если ты не хочешь ждать, то можешь уже купить свой ТОКСИЧНЫЙ IPA. Всем удачи! Участников: 709 Призовых мест: 3 Дата розыгрыша: 18:00, 27.10.2025 MSK (1 час)

Roo-Code | Опенсорсный ИИ-копайлот в VS Code Еще одно расширение IDE, в которое можно внедрить любую GPT, платную или бесплатную. На видео демонстрируется фича Auto Approve, с помощью который вы задаете, какие фичи сразу принимаются, а какие потребуют вашей проверки. Доступен в РФ: да Цена: бесплатно @prog_tools

Шпаргалка Linux Если вам предстоит демонстрировать навыки обращения с этой ОС на собесе или вы просто хотите узнать свои пробелы, обратите внимание на эту шпаргалку. Помимо классики вроде перемещения / переименования файлов, она содержит еще разделы про сеть (Networking), управление сервисами (systemd), контейнеризацию, которые часто не входят в базовые программы онлайн-университетов. #обучение @zen_of_python

Придумайте смешную подпись к фото так, чтобы это относилось к ЯП #обсуждение @zen_of_python
Придумайте смешную подпись к фото так, чтобы это относилось к ЯП #обсуждение @zen_of_python

Вопросы подписчиков Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает: — Спрашивайте
Вопросы подписчиков Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает: — Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов! — Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте. #обсуждение @zen_of_python

Python митап от Авито 27 октября в Москве! ☄ Вечером 27 октября вас ждут в офисе на Лесной, чтобы обсудить: ➡ кейс оптимизации GC в Python от Саши Федосеева, backend-инженера из команды Main Page Tech Авито; ➡ как mypy укрощает Python в большой компании вместе с Сергеем Яхницким из Яндекса. После докладов спикеры в формате круглого стола вместе с участниками обсудят, подходит ли Python для запуска больших нагруженных решений. Для тех, кто не успевает вырваться из офиса или дома, будет онлайн-трансляция. Так что не откладывайте, регистрируйтесь и зовите коллег — все подробности по ссылке. Это #партнёрский пост

​​mathwords.com | Глоссарий математики, статистики и прочих подобных наук Если уж вам приходится освежать термины в рамках собесов, MathWords — словарь терминов и определений умеренного размера. Квантили и моды, абсциссы и экспонента, корень и остаток — база не только для старшеклассника, но и для Python-разработчика. #инструмент @zen_of_python

​​blind_watermark | Невидимые, но все же водяные знаки Новый уровень вотермарков — «слепые» (blind). Обычный человек не увидит разницы между изображениями до и после, но специальный алгоритм сможет, даже при издевательствах над изображением вроде обрезки или поворота. Библиотека позволяет быстро навесить такую защиту на ваш контент и распознать ее.

Зачем нужны «ленивые» (lazy) импорты Когда модуль импортируется, интерпретатор выполняет весь код на глобальном уровне этого модуля, включая все его собственные импорты и инициализации. В больших приложениях и тестовых наборах это может заметно замедлять запуск и фазу сбора тестов. Поэтому идея «ленивого импорта» — откладывать импорт «тяжёлых» зависимостей до момента, когда они действительно понадобятся — помогает улучшить отзывчивость приложения и сократить время тестирования. Переносим import внутрь функции Самый очевидный и безопасный способ сделать импорт ленивым — переместить import из глобальной области видимости внутрь функции или метода, где ресурс реально используется. При таком подходе импорт произойдёт только при первом вызове этой функции (и далее кешируется в sys.modules, поэтому реальной «повторной» загрузки не происходит). Это даёт быстрый выигрыш для модулей, которые редко используются или инициализируют тяжёлые зависимости:

def do_heavy_task():
    import heavy_lib
    heavy_lib.run()
Плюсы: простота. Минусы: если импорт нужен во многих местах, придётся либо дублировать import (что допустимо), либо устанавливать глобальную переменную после первого импорта. Вариант с importlib — когда нужно контролировать пространство имён Если хочется более явного контроля (например, избежать появления имени в локальной области каждой функции), можно использовать importlib.import_module() и присваивать результат в переменную (глобальную или локальную). Это зачастую полезно при динамическом импорте по имени строки: Пример:

from importlib import import_module

def use_feature():
    mod = import_module("heavy_lib")
    mod.do()
Как найти «тяжёлые» импорты — инструмент `python -X importtime Прежде чем делать импорты ленивыми, полезно понять, что именно тормозит загрузку. Для этого есть встроенная опция: python -X importtime your_program.py — она выводит дерево импорта с временами, позволяя увидеть самые затратные узлы. Это особенно полезно при оптимизации большого проекта или ускорении фазы сбора тестов. Особая зона внимания — pytest и фаза collection Pytest во время collection импортирует все тестовые файлы — следовательно, импорты в глобальной области тестов будут исполнены на этапе collection, даже если сам тест не будет запущен. Это распространённый источник задержек в больших тестовых наборах. Решение — переносить импорты внутрь тестовых функций, использовать importlib внутри тестов. «Глобальный» трюк Если модуль содержит множество функций, которые все используют одну и ту же тяжёлую библиотеку, имеет смысл импортировать её при первом нужном вызове и сохранить в глобальной переменной модуля (через `global`). Короткая иллюстрация:

# module.py
heavy = None

def first_use():
    global heavy
    if heavy is None:
        import heavy_lib
        heavy = heavy_lib
    heavy.do()
Когда ленивые импорты — плохая идея 🔘 Если импорт жизненно важен для модуля и должен бросать ошибки во время старта (fail fast), откладывание импорта может скрыть проблему до момента выполнения, что усложнит отладку. 🔘 Когда импорт идёт с побочными эффектами, которые вы ожидаете увидеть при импортировании модуля — откладывая импорт, вы меняете поведение. #основы @zen_of_python

Что вы чувствуете, когда осознаете, что текст написан GPT?
Anonymous voting

​​Не триггеримся: как унять головную боль Когда питаться обезболом не хочется, а парить стопы не к месту. Когда-то точно понадобится, сохраняйте: – Выйди на воздух, разомни шею и плечи. Часто этого хватает. – Промни затылок пальцами — напряжение уходит вместе с болью. – Если пульсирует — закрой шторы, посиди в тишине, без раздражителей. – Холод к лбу, тепло к шее — старый, но рабочий трюк. – Выпей воды, перекуси, сядь ровно. Базовые вещи спасают чаще, чем кажется. – Убери экран, дай глазам отдохнуть. – Если не отпускает — проверь давление или другие очевидные причины.

Python митап от Авито 27 октября в Москве! ☄ Вечером 27 октября вас ждут в офисе на Лесной, чтобы обсудить: ➡ кейс оптимизации GC в Python от Саши Федосеева, backend-инженера из команды Main Page Tech Авито; ➡ как mypy укрощает Python в большой компании вместе с Сергеем Яхницким из Яндекса. После докладов спикеры в формате круглого стола вместе с участниками обсудят, подходит ли Python для запуска больших нагруженных решений. Для тех, кто не успевает вырваться из офиса или дома, будет онлайн-трансляция. Так что не откладывайте, регистрируйтесь и зовите коллег — все подробности по ссылке. Это #партнёрский пост

Вайсфельд М. Объектно-ориентированный подход. 5-е издание Классическая книга для целого семейства языков вроде Python. Читать
Вайсфельд М. Объектно-ориентированный подход. 5-е издание Классическая книга для целого семейства языков вроде Python. Читать будет непросто, ведь там может встретиться глава про SOLID с примерами на C++, однако это наилучший способ понять философию создателей таких языков. Начинающим такое советовать, наверное, не стоит, но если вы уже погружались в горнило разработки и выпуска ПО в прод, то книга точно сделает из вас лучшего специалиста. #книга @zen_of_python

Как писать docstrings Докстринги (буквально «строки документации») — это встроенная в код документация (обычно после инициализации функции / класса и прочих объектов между двумя '''), которую могут читать люди и инструменты (help(), pydoc, автогенераторы). В этом лонгриде мы разберемся, где и как их писать. Зачем нужны docstrings — и чем они отличаются от комментариев 🔘Комментарии (#) объясняют реализацию и помогают разработчикам; интерпретатор их игнорирует. 🔘Докстринги — это строковые литералы (обычно в """`), помещённые сразу после определения модуля / функции / класса / метода; они сохраняются в атрибуте .__doc__` и доступны в рантайме (через .__doc__, help() и инструментах вроде pydoc. Докстринги описывают интерфейс (что делает код, какие аргументы и что возвращает), а комментарий — реализацию и все остальное. Многострочные докстринги используются когда нужно подробнее описать параметры, поведение, побочные эффекты, примеры использования. По PEP 257 закрывающие кавычки обычно ставят на отдельной строке в многострочном docstring:

def get_book(publication_year, title):
    """
    Retrieve a Harry Potter book by its publication year and name.

    Parameters:
        publication_year (int): The year the book was published.
        title (str): The title of the book.

    Returns:
        str: A sentence describing the book and its publication year.
    """
Чтобы получить доступ к docstring в коде и терминале, вызываем: 🔘 obj.__doc__ — возвращает сырой docstring (часто краткий); 🔘 help(obj) — даёт структурированный вывод, полезный для модулей и классов; 🔘 python -m pydoc module — позволяет просматривать документацию из терминала и генерировать статичные страницы. Что писать в docstring для модулей, функций и классов Модуль: 🔘 Краткое описание назначения модуля. 🔘 При необходимости — описание экспортируемых переменных/классов/функций, примеры использования. Функция / метод: 🔘 Краткое резюме (1–2 предложения). 🔘 Секция Parameters`/`Args: имена параметров, типы, краткое описание. 🔘 Секция Returns / Yields: что возвращается, тип. 🔘 Исключения: какие ошибки может выбросить функция (опционально, но полезно). 🔘 Пример использования или заметки о поведении (если нужно). Класс: 🔘 Краткое описание назначения класса. 🔘 Описание атрибутов (публичных), краткая информация о методах (если интерфейс не очевиден). 🔘 Для сложных иерархий — примеры создания/использования. ([realpython.com][1]) #основы @zen_of_python