Курс 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. Извлечение аудио из видео
  2. Установка пакетов с помощью pip
  3. Пересечение списков с использованием множеств
  4. Возврат нескольких значений из функции
  5. Декораторы в Python
  6. Enum в Python: создание и использование перечислений
  7. Многострочные комментарии в Python
  8. Python: отсутствие точек с запятыми
  9. Дизассемблирование Python кода
  10. Преобразование типов данных в set comprehension
  11. Удаление специальных символов с помощью re.sub
  12. Изменение переменной в Python: nonlocal
  13. Сравнение неупорядоченных списков
  14. Python enumerate() для работы с индексами
  15. Метод rlshift для битового сдвига
  16. Метод ne для сравнения объектов
  17. Создание новой даты в Python
  18. Извлечение чисел из текста
  19. Приоритет операций в Python
  20. Подсчет элементов в Python
  21. Перемешивание списка с shuffle()
  22. Python reversed() функция
  23. Форматирование данных с помощью pprint
  24. Очистка входных данных
  25. Оператор деления для класса Rational
  26. Функции с дополнением
  27. Разделение строки на пары ключ-значение.
  28. Проверка элементов списка условием
  29. Создание детектора плагиата
  30. Форматирование строк в Python
  31. Оператор match в Python
  32. Присвоение и ссылки
  33. Контекстный менеджер в Python
  34. Печать в одной строке
  35. Разделение строки с помощью split()
  36. Работа с датой и временем в Python
  37. Python: отличительная особенность — отступы
  38. Работа с исключениями в Python
  39. Передача параметров в Python
  40. Lambda-функция в Python: использование с map() и sum()
  41. Поиск наиболее частого элемента
  42. Удаление элементов во время итерации
  43. Метод eq для сравнения объектов
  44. Импортирование в Python
  45. Вложенные генераторы в Python
  46. Форматирование объектов с модулем pprint

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