Курс 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"
- Переименование файлов в Python
- Python Менеджер контекста
- Поиск индекса элемента
- Генерация UUID в Python
- Оператор «not» в Python
- Список импортированных модулей в Python
- Работа с срезами в Numpy
- Основы Python
- Работа с множествами в Python
- Установка Home Assistant
- Возвращение нескольких значений через кортеж или класс
- Получение ID текущего процесса
- Декораторы в Python
- Проверка подстроки в строке
- Вызов функций по строке в Python.
- Форматирование кода на Python
- Изменения в обработке логических значений
- Профилирование кода на Python
- Объединение словарей в Python
- Решение переменной Шредингера
- Сортировка и обратный порядок
- Блок else в циклах Python
- Округление чисел с помощью round
- Измерение времени выполнения кода с использованием time
- Отступы в Python
- Инверсия списка и строки в Python
- Виртуальное окружение Python
- Слияние словарей в Python 3.9
- Конкатенация строковых литералов
- Оптимизация параметров в Python
- Безопасные SQL-запросы в Python 3.11
- Функции классификации комплексных чисел
- Построение графиков в Matplotlib
- Модуль math: основные функции
- Работа с часовыми поясами в Python
- Работа с датами в Python
- Импорт и использование модулей в Python
- Удаление элемента по индексу
- Идентификатор объекта в Python
- Форматирование чисел в Python
- Создание GUI с Tkinter: Entry
- Декоратор защиты анонимных пользователей















