Python академия
← К каналу

✨ Магия 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
← Предыдущий пост 🎛 Делаем бота удобным: Кнопки и Меню Никто не любит вводить команды вручную (/s… Следующий пост → ⚡ Lambda: Функции-однострочники В Python часто бывают ситуации, когда вам нужна…
Другие главы канала «Python академия»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 01.05.2026
Скачивание постов и изображений профиля из Instagram Всем нам часто попадаются …
👁 521 просмотров
Глава от 30.04.2026
Сортировка словаря по значениям Сортировка данных словаря по значениям ключей, …
👁 830 просмотров
Глава от 29.04.2026
Как извлечь аудио из видеофайлов Представим, что у нас есть mp4-файл, а нам нуж…
👁 1 131 просмотров
Глава от 28.04.2026
Получаем и задаем лимит рекурсии В Python не оптимизируется хвостовая рекурсия…
👁 1 136 просмотров
Глава от 27.04.2026
Каждая функция должна выполнять какое-то одно действие и делать это хорошо Пиши…
👁 1 252 просмотров
Глава от 26.04.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 1 364 просмотров
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
Удалить этот пост Удалить канал
🔍
Архив всех постов Макс
Поиск по тексту среди 3,357,175 постов из 200,425 каналов. Фильтры по дате, видео, репостам и удалённым публикациям.
1 ₽ — 7 дней доступа
далее 490 ₽/мес
Получить доступ за 1 ₽
или войти, если уже есть аккаунт

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

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Математика с Андреем: подготовка к ЕГЭ, ОГЭ, олимпиадам. Курсы, консультации и разборы задач. Подписывайся, чтобы сдать экзамены на 80+ баллов!
👥 148 549 · +8 468/7д
@obr_mo
Образование Подмосковья
Главные новости об образовании в Московской области: школы, колледжи, детские сады и вузы. Репортажи с уроков, интервью с учителями, разборы ЕГЭ и ОГЭ, изменения в распис…
👥 77 689 · -327/7д
@iqkot
Образование
Погрузись в мир знаний и саморазвития вместе с сообществом единомышленников. Здесь мы обсуждаем самые актуальные темы образования, делимся лайфхаками для обучения и вдохн…
👥 69 977 · -16 975/7д
@Moscow_school
Московское образование
Успех начинается здесь! Для СМИ: press-donm@mos.ru Сайт: mosobr.shkolamoskva.ru ВК: vk.com/educationdep ТГ: https://t.me/depobr_mos
👥 69 437 · +95/7д
@bestch
Культура речи • Саморазвитие
Прокачай свою речь и эрудицию вместе с каналом «Культура речи • Саморазвитие». Здесь ты узнаешь, как правильно писать и говорить, расширишь словарный запас и научишься уд…
👥 60 868 · -631/7д
@Lingvaa
Лингвист | Русский язык Образование
Забыли, как правильно: звонИт или звОнит? Тыкаете наугад в ударениях? Канал «Лингвист» — ваш ежедневный филолог в кармане. Короткие заметки, разборы сложных правил, тесты…
👥 53 567 · -114/7д

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

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 417 просмотров
В чем сложность массивов и хешмапов в python Сложность массивов (списков) и хешмапов (словари) в Python зависит от операций, которые вы вып…
👁 6 301 просмотров
PyAutoGUI PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает …
👁 6 284 просмотров
Как использовать ключевое слово global в Python По умолчанию Python думает, что внутри функции вы хотите использовать локальную переменную.…
👁 6 280 просмотров
📝 Код понятный без слов: Аннотации типов Python - язык с динамической типизацией. Это значит, что переменная x может сначала быть числом 5,…
👁 6 268 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 267 просмотров
Как удалить ключ из словаря при помощи генератора Генераторы словаря в Python — это быстрые однострочники, которые позволяют легко создават…
👁 6 247 просмотров
♾️ Бесконечные аргументы: Магия Звездочек Замечали, что в функцию print() можно передать сколько угодно значений? print(1, "a", [1,2], Tru…
👁 6 224 просмотров
Как искать индекс элемента, которого, возможно, нет в списке Бывает, нужно получить индекс элемента, но мы не уверены, есть ли он в списке.…
👁 6 194 просмотров
Метод lower() возвращает новую строку lower() возвращает новую строку. Этот момент логически вытекает из предыдущего. Следовательно, если в…
👁 6 175 просмотров
Как найти индексы всех вхождений элемента в списке А что, если искомое значение встречается в списке несколько раз и мы хотим узнать индекс…
👁 6 173 просмотров
‍Функция zip в Python Функция zip принимает на вход в качестве аргументов итерируемые объекты, а возвращает итератор из кортежей, где i-й …
👁 6 145 просмотров
Проверка истинности объекта класса Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магичес…
👁 6 144 просмотров
Валидация email-адресов Для проверки корректности email-адреса а также действительности его существования существует неплохой модуль valida…
👁 6 119 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 113 просмотров
🔮 Магия Множеств: set круче списков Представьте задачу: у вас есть два списка подписчиков - из Instagram и из Telegram. 1. Нужно найти тех…
👁 6 077 просмотров
Пакет со всеми алгоритмами На днях обнаружил крутой пакет, в котором реализованы практически все алгоритмы, которые можно представить. Спи…
👁 6 073 просмотров
Работаем с USB PyUSB — это библиотека, которая обеспечивает легкий доступ к USB. Имеет поддержку изохронной передачи, если её поддерживает …
👁 6 068 просмотров
Чтение аудио-файлов в массив numpy Одним из основных действий в начале аудиоанализа конечно же является чтение аудио-файла и выгрузка его з…
👁 6 051 просмотров
Изменение в контекстных менеджерах Как вы знаете, для удобного управления жизненным циклом ресурсов в python существуют контекстные менедже…
👁 6 025 просмотров
🏷 Темы и теги
#задачи по python #python #программирование #обучение #алгоритмы #кодинг #Образование
📋 О канале Python академия
Прокачай Python с нуля до профи. Ежедневные задачи с разбором логики, готовые решения и советы по алгоритмам. Подходит для новичков и опытных кодеров.
📊 Аналитика канала «Python академия» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
📌 Данные подтянутся автоматически по ссылке на канал. Логотип необязателен — ускоряет проверку.
🖼 Перетащите картинку или выберите файл
PNG, JPG, WEBP · до 5 МБ
captcha

Нажимая кнопку, вы соглашаетесь на обработку данных.
Проверим и добавим канал в течение суток.