Курс Python → Декораторы классов
Декораторы классов — это специальные функции, которые позволяют изменить поведение методов класса без изменения самого класса. Они позволяют добавлять дополнительную функциональность к методам класса, не изменяя их исходный код. Декораторы классов обычно определяются как обычные функции, которые принимают метод класса в качестве аргумента и возвращают новую функцию, которая заменяет исходный метод.
Пример использования декораторов классов можно увидеть на примере декоратора add_hello. Этот декоратор добавляет к методу greet класса MyClass вывод строки «Hello!» перед вызовом самого метода. Для применения декоратора к методу используется синтаксис @add_hello перед определением метода в классе. Теперь при вызове obj.greet() будет выводиться не только обычное приветствие, но и «Hello!».
class MyClass:
@add_hello
def greet(self):
print("Hello, how are you?")
def add_hello(func):
def wrapper(self):
print("Hello!")
func(self)
return wrapper
obj = MyClass()
obj.greet()
В приведенном примере декоратор add_hello принимает метод greet класса MyClass в качестве аргумента и возвращает новую функцию wrapper, которая добавляет вывод «Hello!» перед вызовом исходного метода. При вызове obj.greet() сначала будет выведено «Hello!», а затем «Hello, how are you?». Таким образом, декоратор add_hello позволяет расширить функциональность метода greet, не изменяя его исходный код.
Другие уроки курса "Python"
- Извлечение аудио из видео
- Установка пакетов с помощью pip
- Пересечение списков с использованием множеств
- Возврат нескольких значений из функции
- Декораторы в Python
- Enum в Python: создание и использование перечислений
- Многострочные комментарии в Python
- Python: отсутствие точек с запятыми
- Дизассемблирование Python кода
- Преобразование типов данных в set comprehension
- Удаление специальных символов с помощью re.sub
- Изменение переменной в Python: nonlocal
- Сравнение неупорядоченных списков
- Python enumerate() для работы с индексами
- Метод rlshift для битового сдвига
- Метод ne для сравнения объектов
- Создание новой даты в Python
- Извлечение чисел из текста
- Приоритет операций в Python
- Подсчет элементов в Python
- Перемешивание списка с shuffle()
- Python reversed() функция
- Форматирование данных с помощью pprint
- Очистка входных данных
- Оператор деления для класса Rational
- Функции с дополнением
- Разделение строки на пары ключ-значение.
- Проверка элементов списка условием
- Создание детектора плагиата
- Форматирование строк в Python
- Оператор match в Python
- Присвоение и ссылки
- Контекстный менеджер в Python
- Печать в одной строке
- Разделение строки с помощью split()
- Работа с датой и временем в Python
- Python: отличительная особенность — отступы
- Работа с исключениями в Python
- Передача параметров в Python
- Lambda-функция в Python: использование с map() и sum()
- Поиск наиболее частого элемента
- Удаление элементов во время итерации
- Метод eq для сравнения объектов
- Импортирование в Python
- Вложенные генераторы в Python
- Форматирование объектов с модулем pprint















