Курс 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"
- Запрос пароля с помощью getpass
- Область видимости переменных
- Сравнение строк в Python
- Оператор «and» в Python
- Переименование файлов в Python
- Работа со строками в Python
- Комментарии в Python
- Функция sleep() в Python
- Переворот списка в Python
- Скрытие вывода данных
- Вызов внешних программ в Python с помощью sh
- Отправка HTTP-запросов в Python
- Метод __complex__ в Python
- Обработка StopIteration в Python
- Синхронизация потоков с time.sleep()
- Получение значений из словарей
- Создание namedtuple списком полей
- Поиск частого элемента
- Тестирование с responses
- Принципы LSP и ISP в Python
- Использование двоеточия в Python
- Преобразование данных в Python
- Повторение элементов в Python
- Переопределение метода __lshift__
- Статическая типизация в Python
- Создание детектора плагиата
- Преобразование списка в словарь через генератор
- Создание веб-приложения с Flask
- Метод remove() для удаления элемента из списка
- Использование html-скриптов в Jupyter Notebook
- Многоточие в Python
- Игра «Угадывание чисел»
- Поиск индексов подстроки
- Работа с модулем glob в Python
- Оператор in в Python
- Удаление специальных символов с помощью re.sub
- Метод сравнения объектов в Python
- Тест скорости набора текста на Python
- Изменение логики работы с временем
- Работа с атрибутом dict
- Настройка Cron
- split() без разделителя
- Работа с библиотекой requests
- Работа с Event() в threading
- Создание вложенного генератора
- Подсчет частоты элементов с Counter















