Python академия
Python академия
2 991 подписчиков · @python_of
К каналу →
🤖 Твой первый Telegram-бот на aiogram Мы уже выяснили, что асинхронность это круто. А где она используется чаще всего? Конечно, в Telegram-ботах! Сегодня напишем "Эхо-бота" - это…
Читать далее →
7 113
🎛 Делаем бота удобным: Кнопки и Меню Никто не любит вводить команды вручную (/settings, /help). Пользователи любят тыкать пальцем! В Telegram есть два вида кнопок: 1. Reply-кнопк…
Читать далее →
7 189

Магия Python: Как работают декораторы?

✨ Магия Python: Как работают декораторы?

Вы постоянно видите их в коде: @bot.message_handler, @app.route, @staticmethod. Но что на самом деле делает этот символ @?

В Python функции - это объекты. Их можно передавать в другие функции, как обычные переменные.

Декоратор - это просто функция, которая принимает другую функцию, "обертывает" её в дополнительный код и возвращает обратно.

Представьте, что у вас есть подарок (функция). Декоратор - это упаковочная бумага. Подарок внутри тот же, но теперь он выглядит и ведет себя немного иначе.

Пример: Декоратор-логгер
Допустим, мы хотим автоматически писать в консоль, когда функция запустилась и когда завершилась.

def my_logger(func):
def wrapper():
print("📢 Запускаю функцию...")
func() # Вызываем оригинальную функцию
print("✅ Функция отработала!")
return wrapper

# Применяем декоратор
@my_logger
def say_hello():
print("Привет, мир!")

# Вызываем
say_hello()

Результат в консоли:

📢 Запускаю функцию...
Привет, мир!

✅ Функция отработала!

🤯 Что происходит под капотом?
Синтаксис с @ - это просто "сахар" (упрощение). На самом деле Python делает вот это:

# Это:
@my_logger
def say_hello(): ...

# Равносильно этому:
def say_hello(): ...
say_hello = my_logger(say_hello)

А как это работает в ботах (@dp.message)?

В библиотеках типа aiogram декораторы часто используются для регистрации.
Когда вы пишете @dp.message(), декоратор не меняет код вашей функции, а сообщает Диспетчеру: "Эй, запомни эту функцию! Если придет сообщение, нужно запустить именно её".

Итог: Декораторы нужны, чтобы добавить логику вокруг функции (проверка прав доступа, замер скорости, логирование), не меняя её код внутри.

Ставь ❤️, если магия рассеялась и стало понятнее!

Подписывайтесь на канал 👉 @python_of
⚡ Lambda: Функции-однострочники В Python часто бывают ситуации, когда вам нужна маленькая функция всего один раз. Например, чтобы отсортировать список по хитрому правилу. Писать …
Читать далее →
7 261
⚡ Магия одной строки: List Comprehension Вы всё еще пишете циклы для заполнения списков вот так? squares = [] for x in range(10): squares.append(x ** 2) Это работает, но это…
Читать далее →
7 360
Другие главы канала «Python академия»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 26.05.2026
Прочитать произвольную строку из файла Предположим, вы решили разработать чат-б…
👁 814 просмотров
Глава от 25.05.2026
Ускоряем код с помощью векторизации Одним из приемов для ускорения работы цикло…
👁 763 просмотров
Глава от 25.05.2026
Мифы про ИИ-агентов: что реально работает в 2026 году. Открытый урок курса «ИИ-а…
👁 724 просмотров
Глава от 25.05.2026
Создание дочернего процесса Метод os.fork() создаёт дочерний процесс в том же м…
👁 836 просмотров
Глава от 24.05.2026
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онла…
👁 925 просмотров
Глава от 24.05.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 877 просмотров
Глава от 23.05.2026
Функции str.split и rsplit() в Python Функция split() в Python используется для…
👁 1 032 просмотров
Глава от 23.05.2026
Работа аналитика - уже не только про цифры! Это про умение принимать решения бы…
👁 1 122 просмотров
Глава от 21.05.2026
Дескрипторы Дескриптор – это атрибут объекта со “связанным поведением”, то есть…
👁 1 305 просмотров

Популярные посты канала «Python академия»

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 226 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 162 просмотров
PyAutoGUI PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает …
👁 8 117 просмотров
В чем сложность массивов и хешмапов в python Сложность массивов (списков) и хешмапов (словари) в Python зависит от операций, которые вы вып…
👁 8 112 просмотров
Чтение аудио-файлов в массив numpy Одним из основных действий в начале аудиоанализа конечно же является чтение аудио-файла и выгрузка его з…
👁 8 083 просмотров
Как использовать ключевое слово global в Python По умолчанию Python думает, что внутри функции вы хотите использовать локальную переменную.…
👁 8 057 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 034 просмотров
Как удалить ключ из словаря при помощи генератора Генераторы словаря в Python — это быстрые однострочники, которые позволяют легко создават…
👁 8 032 просмотров
Метод lower() возвращает новую строку lower() возвращает новую строку. Этот момент логически вытекает из предыдущего. Следовательно, если в…
👁 8 030 просмотров
‍Функция zip в Python Функция zip принимает на вход в качестве аргументов итерируемые объекты, а возвращает итератор из кортежей, где i-й …
👁 8 026 просмотров
Альтернативный способ создания namedtuple В качестве альтернативы вы можете передать список, состоящий из имен полей, вместо просто имен по…
👁 8 017 просмотров
📝 Код понятный без слов: Аннотации типов Python - язык с динамической типизацией. Это значит, что переменная x может сначала быть числом 5,…
👁 7 998 просмотров
Валидация email-адресов Для проверки корректности email-адреса а также действительности его существования существует неплохой модуль valida…
👁 7 998 просмотров
Работаем с USB PyUSB — это библиотека, которая обеспечивает легкий доступ к USB. Имеет поддержку изохронной передачи, если её поддерживает …
👁 7 996 просмотров
♾️ Бесконечные аргументы: Магия Звездочек Замечали, что в функцию print() можно передать сколько угодно значений? print(1, "a", [1,2], Tru…
👁 7 989 просмотров
Как искать индекс элемента, которого, возможно, нет в списке Бывает, нужно получить индекс элемента, но мы не уверены, есть ли он в списке.…
👁 7 961 просмотров
Зачем использовать namedtuple вместо обычного словаря Основным преимуществом namedtuple является то, что он занимает меньше места (памяти),…
👁 7 952 просмотров
Как найти индексы всех вхождений элемента в списке А что, если искомое значение встречается в списке несколько раз и мы хотим узнать индекс…
👁 7 933 просмотров
Проверка истинности объекта класса Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магичес…
👁 7 919 просмотров
Работа с форматированием текста textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда …
👁 7 913 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Основатель онлайн-школы «Точка Знаний» В канале: — короткие видео по темам 1-11 классов — разбор задач ВПР/ОГЭ/ЕГЭ — применение математики в жизни Получить консульта…
👥 273 878 · +27 017/7д
@obr_mo
Образование Подмосковья
Официальный канал Министерства образования Московской области. Здесь вы узнаете о нововведениях в школах, колледжах и вузах региона, изменениях в ЕГЭ и ОГЭ, капремонтах и…
👥 78 896 · -387/7д
@Moscow_school
Московское образование
Успех начинается здесь! Приложение «ЗОЖ с МЭШиком» https://max.ru/meshik_app_bot Для СМИ: press-donm@mos.ru Сайт: mosobr.shkolamoskva.ru ВК: vk.com/educationdep ТГ: htt…
👥 67 074 · -319/7д
@minprosrf
Минпросвещения России
Официальный канал Министерства просвещения России. Всё об образовании для родителей, педагогов и учащихся. Сайт edu.gov.ru ВКонтакте vk.com/minprosvet Однокл
👥 56 163 · +1 054/7д
@Lingvaa
Лингвист | Русский язык Образование
Канал №1 для тех, кто звонИт, а не звОнит! По рекламе: https://clck.ru/3R7DoR Биржа: https://telega.in/c/Lingvaa
👥 53 567 · -114/7д
@id110802233432_biz
Школы РФ
Новости школьного образования для детей и родителей # дети школа школьник новости школьное образование гдз егэ огэ дневник впр оценка учителя родители Реклама: https:…
👥 44 980 · +626/7д
🏷 Темы и теги
#задачи по python #python #программирование #обучение #алгоритмы #кодинг #Образование
📋 О канале Python академия
Учи Python быстро и легко.

Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам.

✔ Подходит для прокачки навыков кодирования.
🔍 Архив всех постов Макс
Поиск по 9,590,977 постам из 201,259 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Python академия» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.