Курс Python → Декораторы в Python
Декораторы в Python — это специальные функции, которые могут изменить поведение другой функции или класса без изменения их собственного кода. Они позволяют добавлять дополнительную функциональность к существующему коду, не изменяя его исходную реализацию. Декораторы могут использоваться, например, для логирования, кэширования, проверки аргументов или управления доступом к функциям.
Для создания декоратора в Python используется символ @, за которым следует имя функции-декоратора. Функция-декоратор принимает другую функцию в качестве аргумента и возвращает новую функцию или класс. Это позволяет применять декоратор к другим функциям, чтобы изменить или расширить их поведение.
def square_decorator(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return result ** 2
return wrapper
@square_decorator
def square(x):
return x
В приведенном примере функция square_decorator() является декоратором, который принимает функцию в качестве аргумента и возвращает новую функцию, которая возводит результат выполнения исходной функции в квадрат. После применения декоратора @square_decorator к функции square(), результат ее выполнения будет возводиться в квадрат.
Использование декораторов позволяет сделать код более модульным, читаемым и гибким. Они позволяют разделить различные аспекты функциональности программы и применять их по отдельности к различным частям кода. Благодаря декораторам можно эффективно использовать и переиспользовать код, делая его более универсальным и поддерживаемым.
Другие уроки курса "Python"
- Профилирование данных с Pandas.
- Использование двоеточия в Python
- Операторы сравнения в Python
- Вывод баннеров
- Избегайте изменяемых аргументов
- Область видимости переменных
- Создание генераторов в Python
- Функция all() в Python
- Удаление и повторная вставка ключа в OrderedDict
- Модуль xkcd: загрузка комиксов
- Функция enumerate() в Python
- Получение текущей даты и времени с помощью datetime
- Модуль subprocess: запуск внешних команд
- Структуры данных в Python
- Аннотации типов в Python
- Разработка игры Pong с turtle
- Работа с URL-адресами в Python
- Генераторы словарей и множеств
- Динамическая типизация в Python
- Оператор zip в Python
- Получение текущего времени в Python
- Преобразование многоуровневого словаря
- Создание списка через цикл
- Объединение списков с помощью zip
- Форматирование строк в Python
- Эффективная конкатенация строк в Python
- Создание новых списков в Python
- Оптимизация сравнения в Python
- Изучение объектов с помощью dir()
- Освоение Python
- Удаление дубликатов с помощью множеств
- Хэш-функции в Python
- Проверка надежности пароля на Python
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Множественное присваивание в Python
- Измерение времени выполнения кода в Python
- Парсинг статей с Newspaper3k
- Python: возвращение нескольких значений
- lru_cache оптимизация функций
- Получение пути к текущему скрипту с помощью os
- Роль object и type в Python
- Просмотр внешних файлов в %pycat
- Обработка StopIteration в Python
- Удаление элементов во время итерации
- Замена символов в Python















