Курс 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. Работа с collections.Counter
  2. Сравнение def и lambda функций в Python
  3. Добавление элементов в список
  4. Итераторы в Python
  5. Создание пустых функций и классов в Python
  6. Ввод нескольких значений
  7. Функция rsplit() в Python
  8. Профилирование кода
  9. Транспонирование 2D-массива с помощью zip
  10. Разделение строки на пары ключ-значение.
  11. Итерации в Python
  12. Python Поверхностное Копирование
  13. Оптимизация гиперпараметров в Python
  14. Отношения подклассов в Python
  15. Округление чисел с помощью round
  16. Блок else в обработке исключений
  17. Хранение данных
  18. Официальный канал Python в Telegram
  19. Объединение объектов в Python
  20. Работа с CSV файлами в Python
  21. Введение в PyTorch
  22. Распаковка элементов массива
  23. Наследование в программировании
  24. Списковые включения в Python
  25. Метод __getitem__ в Python
  26. Работа со случайными элементами
  27. Удаление символа из строки
  28. Оформление кода по PEP 8
  29. Декоратор проверки активности
  30. Хеширование паролей с солью
  31. Форматирование строк с помощью f-строк
  32. Декораторы в Python
  33. Метод add для класса Vector
  34. Аннотации типов в Python
  35. Функция zip() в Python
  36. Генераторы в Python
  37. Создание графики с черепахой
  38. ChainMap избыточные ключи
  39. Изменение объектов в Python
  40. Проверка на истинность объектов в Python
  41. Вычисление логарифмов в Python
  42. Генерация случайных данных в NumPy
  43. Декораторы в Python
  44. Удаление специальных символов с помощью re.sub

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