Курс 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"
- Проверка условий: all и any
- Изменение регистра данных
- Оператор in для проверки наличия элемента
- Модуль pprint: улучшение вывода данных
- Retrying в Python: повторные вызовы
- Разделение строки с помощью split()
- Подсчет количества элементов в списке
- Оценка выражений генератора в Python
- Объединение списков с использованием itertools.chain
- Создание генераторов в Python
- Оператор space-invader
- Работа со словарями
- Python и Юникод: работа с цифрами
- Проверка строки на палиндром
- Обновление и получение данных в SQLite
- Работа с временем в Python
- Сортировка слиянием
- f-строки в формате строк
- Переменные класса и экземпляра
- Работа с утверждениями в Python
- Объединение Python и Shell
- Поиск всех индексов подстроки
- Сортировка списка по индексам
- Избегайте ошибку FileNotFoundError
- Методы __repr__ и __str__ в Python
- Генератор списка с условием if
- Объединение словарей в Python
- Метод rmatmul для пользовательских матриц
- Инициализация объекта
- Магические методы в Python
- Работа с исключениями в Python
- Копирование объектов в Python
- Вложенные циклы в Python
- Непрерывная проверка в Python
- Проблемы с dict в Python
- Нахождение максимального значения и его индекса в списке
- Форматирование объектов с модулем pprint
- Добавление элемента в список.
- Преобразование списка в словарь через генератор
- Инверсия списка/строки в Python
- Модуль future Python















