Python RU
Все для python разработчиков админ - @haarrp @python_job_interview - Python собеседования @ai_machinelearning_big_data - машинное обучение @itchannels_telegram - 🔥лучшие ит-каналы @programming_books_it - it книги @pythonl РКН: clck.ru/3Fmy2j
Mostrar más📈 Análisis del canal de Telegram Python RU
El canal Python RU (@pro_python_code) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 12 326 suscriptores, ocupando la posición 10 166 en la categoría Tecnologías y Aplicaciones y el puesto 52 207 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 12 326 suscriptores.
Según los últimos datos del 03 noviembre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -16, y en las últimas 24 horas de -3, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 7.59%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.08% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 935 visualizaciones. En el primer día suele acumular 379 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 api, docker, github, sql, linux.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Все для python разработчиков
админ - @haarrp
@python_job_interview - Python собеседования
@ai_machinelearning_big_data - машинное обучение
@itchannels_telegram - 🔥лучшие ит-каналы
@programming_books_it - it книги
@pythonl
РКН: clck.ru/3Fmy2j”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 04 noviembre, 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.
0 * * * * my_script
Что если бы мы хотели иметь свой CRON внутри программы Python, чтобы в нужные моменты времени вызывать функции? Да еще, чтобы у него был человеческий синтаксис? Такая библиотека есть и называется schedule.
pip install schedule
Рассмотрим пример:
import schedule
import time
def job():
print("Работаю")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
# нужно иметь свой цикл для запуска планировщика с периодом в 1 секунду:
while True:
schedule.run_pending()
time.sleep(1)
Как видите, правила для задания временных интервалов прекрасно читаются, словно они предложения на английском языке. Перевод пары примеров:
# спланируй.каждые(10).минут.сделать(работу)
schedule.every(10).minutes.do(job)
# спланируй.каждый().день.в(10:30).сделать(работу)
schedule.every().day.at("10:30").do(job)
В задания можно передавать параметры вот так:
def greet(name):
print('Hello', name)
schedule.every(2).seconds.do(greet, name='Alice')
Если по какой-то причине нужно отменить задание, это делается так:
def job1():
# возвращаем такой токен, и это задание снимается с выполниния в будущем
return schedule.CancelJob
schedule.every().day.at('22:30').do(job1)
Если нужно отменить группу заданий, то к ним добавляют тэги:
schedule.every().day.do(greet, 'Monica').tag('daily-tasks')
schedule.every().day.do(greet, 'Derek').tag('daily-tasks')
schedule.clear('daily-tasks') # массовая отмена по тэгу
Метод to позволяет задать случайный интервал для выполнения задания, например от 5 до 10 секунд:
schedule.every(5).to(10).seconds.do(my_job)
Библиотека сама не обрабатывает сама исключения в ваших задачах, поэтому, возможно, понадобится создать подкласс планировщика, как в этом примере.
Если задания занимают продолжительное время или должны выполняться параллельно, то вам самостоятельно придется организовать их выполнение в отдельных потоках. Примеры есть в официальном FAQ.__eq__, __hash__, __init__, в Python называют магическими методами. Их назвали так, потому что они добавляют магию✨ в поведение класса.
Например, метод __init__ неявно вызывается при инициализации объекта:
Foo:
def __init__(self, a, b):
self.a = a
self.b = b
foo = Foo(7, 9) # вызывается __init__
print(foo.a, foo.b) # 7, 9
Но сегодня я хочу поговорить о магичесом методе __bool__. В тех классах, где этот метод определен, он сообщает интерпретатору, как оценить булево значение произвольного объекта.
Зачем нам это? Это нестареющая классика: чтобы проверить, словарь или список на непустоту, начинающие часто используют стиль как в C++:
if len(a) != 0:
pass
В то время как PEP8 рекомендует делать просто:
if not a:
pass
И это работает ровно потому, что в момент if a: вызывается метод __bool__ класса список.
Для пользовательских объектов, где __bool__ не перегружен, по умолчанию возвращается True.
if foo:
print(True)
else:
print(False)
# True
Но если добавить
Foo:
def __init__(self, a, b):
self.a = a
self.b = b
def __bool__(self):
return False
То поведение изменится:
if foo:
print(True)
else:
print(False)
# False
Кстати, в случае, если метода __bool__ в классе нет, то интерпретатор будет искать метод __len__ (длина). Поведение такое же: если __len__ возвращает 0, то логическое значение оценивается как False.
Что с этим делать? Помнить, что falsy (значения, которые оцениваются как False) в Python это:
🐙 пустые словари {},
🐙 списки [],
🐙 кортежи (),
🐙 множества set(),
🐙 строки "",
🐙 пустые range(0),
🐙 нули любого численного типа: 0, 0.0, 0j
🐙 константы None и собственно False
А truthy значения это:
🐙 любые пользовательские объекты по умолчанию
🐙 непустые словари, множества, строки, списки, ...
🐙 константа True
И писать проверку на непустоту красиво:
not a:
pass
#magic #dunder #bool
@pro_python_code>>> sum(x * x for x in range(5))
30
Тоже самое, что и:
>>> sum((x * x for x in range(5)))
30
Но вне вызова функции генератор недопустимо использовать без скобок – это синтаксическая ошибка:
>>> g = x * x for x in range(5)
File "<stdin>", line 1
g = x * x for x in range(5)
^
SyntaxError: invalid syntax