Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Show more📈 Analytical overview of Telegram channel Zen of Python
Channel Zen of Python (@zen_of_python) in the Russian language segment is an active participant. Currently, the community unites 18 714 subscribers, ranking 7 001 in the Technologies & Applications category and 35 195 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 714 subscribers.
According to the latest data from 29 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -99 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.27%. Within the first 24 hours after publication, content typically collects 4.24% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 173 views. Within the first day, a publication typically gains 793 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 1.
- Thematic interests: Content is focused on key topics such as github, rust, pip, api, install.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Thanks to the high frequency of updates (latest data received on 30 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
class Mediator:
"""Интерфейс медиатора."""
def notify(self, sender, event):
raise NotImplementedError
class CourseMediator(Mediator):
"""Конкретный медиатор — координатор курсов и пользователей."""
def __init__(self):
self.users = []
def register(self, user):
self.users.append(user)
user.mediator = self
def notify(self, sender, course_name):
# В простом варианте медиатор просто логирует сообщение
print(f"[{sender}] выбрал курс: {course_name}")
# Можно добавить дополнительную логику: фильтрация, отправка уведомлений и т.п.
class User:
def __init__(self, name):
self.name = name
self.mediator = None
def send_course(self, course_name):
if not self.mediator:
raise RuntimeError("User не зарегистрирован у медиатора")
self.mediator.notify(self, course_name)
def __str__(self):
return self.name
m = CourseMediator()
u1 = User("Майкл"); u2 = User("Оля")
m.register(u1); m.register(u2)
u1.send_course("DSA")
u2.send_course("Software Development")
User не знает про других пользователей. Вся координация — в CourseMediator. Такой подход облегчает изменение логики (например, добавить рассылку уведомлений другим пользователям) без модификации User. Медиатор снижает связанность (Coupling) между компонентами и упрощает поддержку.
Плюсы
1️⃣ Централизация логики взаимодействия (проще править и тестировать).
2️⃣ Снижение связности между компонентами.
3️⃣ Легче добавлять новые стратегии взаимодействия, не меняя классы коллег.
Минусы
1️⃣ Риск «божественного объекта» (God Object): медиатор может накопить слишком много логики и стать сложным.
2️⃣ Централизация порождает узкое место — медиатор становится более сложным и менее прозрачным.
#основы
@zen_of_pythonargparse. В этом лонгриде мы покажем на примере, как его использовать, покажем взаимосвязь с sys.argv.
➡️ Какую роль играет sys.argv?
sys.argv — это список, содержащий аргументы командной строки, с которыми был запущен скрипт. Первый элемент списка sys.argv[0] — это имя самого скрипта.
Например, если вы вызовете скрипт так:
python script.py filename.txt -v
то выведется такой перечень:
import sys
print(sys.argv) # ['script.py', 'filename.txt', '-v']
Однако sys.argv — это просто список строк, и если работать с ним вручную, то придётся самостоятельно обрабатывать порядок, типы данных, проверять правильность и т.п., что может стать сложной задачей. Здесь на помощь приходит argparse. Он автоматизирует парсинг аргументов и предоставляет удобные способы проверки параметров CLI.
➡️ argparse: как с ним обращаться
argparse позволяет описать, какие параметры принимает ваш скрипт, какие из них обязательны, какие опциональны, какие могут быть флагами (включить / выключить). Он также автоматически генерирует справку и обрабатывает ошибки в вводе.
Часто бывает так, что скрипт требует передать обязательный параметр — имя файла. Это называется позиционным аргументом, так как его положение в командной строке имеет значение.
import argparse
# Создаём парсер
parser = argparse.ArgumentParser(description='Обработка файла.') # Создаем объект ArgumentParser;
# Добавляем позиционный аргумент 'filename'
parser.add_argument('filename', help='имя файла для обработки') # Добавляем описание каждого аргумента или опции
# Разбираем аргументы командной строки
args = parser.parse_args() # Разберём аргументы sys.argv
# Fргументы доступны как атрибуты: args.filename
print(f'Обрабатываем файл: {args.filename}')
Теперь, если запустить скрипт так:
python script.py example.txt
Программа выведет:
Обрабатываем файл: example.txtЕсли попытаться запустить без аргумента:
python script.py
то argparse автоматически покажет сообщение об ошибке и краткую справку:
usage: script.py [-h] filename script.py: error: the following arguments are required: filenameДокументация #основы @zen_of_python 🙏 — Если спасибо за такой контент
«Вопрос по LLM Какие LLM можно подключить как агента, чтобы он делал работу по инструкции за меня (ML), какие модели лучше всего подойдут для этого и как это организовать?»NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике. #обсуждение @zen_of_python
