Курс 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"

  1. Ограничение итераций в Python
  2. Декораторы в Python
  3. Секреты Python
  4. Работа с PosixPath() в Python
  5. Antigravity модуль
  6. Генерация случайных чисел в Python
  7. Профилирование с Pandas
  8. Оператор (*) в Python
  9. Модуль pprint
  10. Хэш-функции в Python
  11. Подписка на SelectelNews в Twitter
  12. Функция product() из itertools
  13. Генерация случайных чисел в Python
  14. 9 уловок для чистого кода
  15. Сумма элементов списка
  16. Работа с множествами в Python
  17. None в Python: использование и особенности
  18. Удаление элемента по индексу в Python
  19. Нахождение максимального значения и его индекса в списке
  20. Множественное назначение в Python
  21. Обход словаря в Python
  22. Создание namedtuple из словаря
  23. Просмотр внешнего файла в Python
  24. Копирование объектов в Python
  25. Получение ID процесса
  26. Порядок и длина множеств в Python
  27. Нахождение самого длинного слова в списке с помощью max
  28. Введение в PyTorch
  29. Глобальные переменные в Python
  30. Обработка ошибки IndexError
  31. Класс-оболочка для словарей
  32. Работа с базами данных SQLite
  33. Форматирование строк в Python
  34. Оптимизация памяти с __slots__
  35. Переопределение метода divmod
  36. Обновление шаблона base.html
  37. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  38. Хранение данных с помощью dataclasses
  39. Атрибуты класса и экземпляра

Marketello читают маркетологи из крутых компаний