Курс 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
- Секреты Python
- Работа с PosixPath() в Python
- Antigravity модуль
- Генерация случайных чисел в Python
- Профилирование с Pandas
- Оператор (*) в Python
- Модуль pprint
- Хэш-функции в Python
- Подписка на SelectelNews в Twitter
- Функция product() из itertools
- Генерация случайных чисел в Python
- 9 уловок для чистого кода
- Сумма элементов списка
- Работа с множествами в Python
- None в Python: использование и особенности
- Удаление элемента по индексу в Python
- Нахождение максимального значения и его индекса в списке
- Множественное назначение в Python
- Обход словаря в Python
- Создание namedtuple из словаря
- Просмотр внешнего файла в Python
- Копирование объектов в Python
- Получение ID процесса
- Порядок и длина множеств в Python
- Нахождение самого длинного слова в списке с помощью max
- Введение в PyTorch
- Глобальные переменные в Python
- Обработка ошибки IndexError
- Класс-оболочка для словарей
- Работа с базами данных SQLite
- Форматирование строк в Python
- Оптимизация памяти с __slots__
- Переопределение метода divmod
- Обновление шаблона base.html
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Хранение данных с помощью dataclasses
- Атрибуты класса и экземпляра















