Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Mostrar más📈 Análisis del canal de Telegram Zen of Python
El canal Zen of Python (@zen_of_python) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 953 suscriptores, ocupando la posición 6 786 en la categoría Tecnologías y Aplicaciones y el puesto 34 781 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 953 suscriptores.
Según los últimos datos del 27 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -157, y en las últimas 24 horas de 7, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 12.56%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 6.30% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 381 visualizaciones. En el primer día suele acumular 1 195 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 5.
- Intereses temáticos: El contenido se centra en temas clave como github, rust, pip, api, install.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 28 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
def. Однако Python как язык куда глубже и гибче, чем может показаться на первый взгляд. Существует несколько способов создать функцию — от практичных до откровенно абсурдных.
Lambda-функции — минимализм в действии
lambda позволяет создавать анонимные функции в одну строку. Это удобно, когда функция короткая и используется "на лету", например, в map() или filter(). Lambda-функции не могут содержать сложную логику или много выражений — только одно выражение, без return и вложенных блоков:
multiply_by_three = lambda x: x * 3
print(multiply_by_three(5))
Это удобно, но не стоит использовать lambda для сложной логики — теряется читаемость.
functools.partial
С помощью functools.partial можно создавать функции с уже предзаданными аргументами:
from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
print(square(5)) # 25
Это очень удобно, если вы часто вызываете функцию с одними и теми же аргументами и не хотите писать обёртки.
Декораторы
Декораторы позволяют оборачивать функции и изменять их поведение — например, добавлять логирование, кэширование или даже модифицировать аргументы:
def print_result(fmt):
def decorator(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
print(fmt.format(result))
return result
return wrapper
return decorator
@print_result("Результат: {}")
def double(x):
return x * 2
double(4)
Мощный инструмент, но при чрезмерном использовании может запутать читаемость кода.
Классы с методом __call__
В Python можно сделать объект вызываемым, определив метод __call__. Таким образом, вы можете создавать функции как объекты с состоянием:
class Greeter:
def __call__(self, name):
print(f"Hello, {name}!")
greet = Greeter()
greet("Bob")
Бонус — можно хранить состояние внутри объекта, например, счётчик вызовов.
exec()
exec() выполняет строку как код Python. Да, вы можете определять функции с его помощью.
code = '''
def add(x):
return x + 10
'''
exec(code)
print(add(5)) # 15
Этот способ может быть полезен для метапрограммирования, например, если нужно дать пользователю возможность писать код в аналитической панели. Но использовать его нужно с большой осторожностью из-за проблем безопасности и отладки.
eval()
eval() — ещё один способ выполнить строку кода, но только если это выражение, а не целый блок.
add = eval("lambda x: x + 10")
print(add(3)) # 13
Те же плюсы и минусы, что и у exec().
types.new_class
С помощью types.new_class() можно создавать callable-объекты (через `__call__`) на лету.
import types
def class_body(ns):
ns['__call__'] = lambda self, x: x * 2
DynamicFunction = types.new_class("DynamicFunction")
class_body(DynamicFunction.__dict__)
func = DynamicFunction()
print(func(6)) # 12
Это крайне экзотический способ, почти бесполезный в практике, но демонстрирует гибкость Python.
#основы
@zen_of_python
python -m asyncio ps 12345 # Табличный список задач для процесса с PID 12345
python -m asyncio pstree 12345 # Древовидное отображение взаимозависимых корутин
Команда выводит табличный список активных корутин с их именами, стеком и зависимостями.
Сферы применения
— Telegram-боты;
— aiohttp и другие HTTP-серверах;
— await‑запросы к БД.
Теперь нет нужды вставлять логи или использовать профайлеры — диагностика идет вживую и позволит увидеть:
— какие запросы обрабатываются дольше всего;
— какие «вешают» бота;
— какие запросы ожидают своей очереди.
Документация
#факт
@zen_of_python
import hashlib
hash = hashlib.sha256()
hash.update(b'hello')
hashed_string = hash.hexdigest()
print(hashed_string) # 2cf24d......8b9824
Зачем это нужно
— Проверка «девственности» передаваемых данных: при передаче данных по сети важно убедиться, что они не были изменены. Хеширование позволяет создать контрольную сумму, которая может быть использована для проверки целостности данных;
— Хранение паролей: вместо хранения паролей в открытом виде их точно стоит обезопасить хешами;
— Хеширование используется для создания цифровых подписей, которые подтверждают подлинность и целостность сообщений или документов.
Многие из вас сталкивались с SSH-ключами для Git-репозиториев, причем с разными алгоритмами: MD5, SHA256. В отдельном посте поговорим об алгоритмах шифрования вроде RSA.
Когда мы создаем пару ключей (приватный + публичный), например с помощью:
ssh-keygen -t rsa -b 4096
То получаем приватный ключ, что хранится на локальной машине и используется для аутентификации. Также мы получаем публичный ключ и загружаем его на GitHub. Он не использует хеши для хранения или проверки самих публичных ключей, они проверяются напрямую, при помощи криптографических протоколов. Но вот где вступает в дело хеш:
GitHub (и SSH-клиенты в целом) используют хеши не для безопасности, а для удобной идентификации.
Когда мы смотрим отпечаток ключа, например:
ssh-keygen -lf ~/.ssh/id_rsa.pub
То получаем:
2048 SHA256:2f3b7A5Nk...xyz username@host (RSA)Это и есть отпечаток ключа (fingerprint) — хеш публичного ключа. Он используется для подтверждения подлинности ключа. #основы @zen_of_python
