Курс 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
- Логирование с Loguru
- Строки в Python: апострофы и кавычки
- Объединение словарей в Python
- Генерация UUID в Python
- Объединение итераторов
- Установка пакета в Python
- Сравнение строк в Python
- Выбор редактора кода.
- Установка и обучение ChatterBot
- Функция reduce() из модуля functools
- Pretty-printing JSON в Python
- Повторение и перенос строки
- Функциональное программирование.
- Генерация случайных чисел в Python
- Работа с кортежами в Python
- Расчет времени выполнения программы
- 9 уловок для чистого кода
- Сравнение def и lambda функций в Python
- Передача аргументов в Python
- Объединение списков в Python
- Извлечение новостей с newspaper3k
- Ускорение выполнения кода в Python
- Оператор морж в Python 3.8
- Оператор «моржа» (Walrus Operator)
- Управление User-Agent в Python
- Сортировка элементов с OrderedDict
- Переопределение метода __or__()
- Конструктор в Python
- Непрерывная проверка в Python
- ChainMap.new_child() — добавление нового словаря
- Defaultdict в Python
- Распаковка элементов массива
- Генератор данных в Keras
- Делегирование в Python
- Замена символов в Python
- Руководство по использованию Colorama
- Python enumerate() функции
- Выборка чисел
- Метод gt в Python
- Создание директории в Python
- JMESPath в Python
- Создание спинбокса в tkinter
- Выключение компьютера с помощью Python















