Курс 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. Codecademy в Telegram
  2. Обработка данных в Python
  3. Оператор «not» в Python
  4. Асинхронное выполнение задач в процессах
  5. Декораторы в Python
  6. Вычисление времени выполнения
  7. Структуры данных в Python
  8. Настройка вывода NumPy
  9. Переменная Шредингера
  10. Преобразование регистра строк
  11. HTTP-запросы с библиотекой Requests
  12. Преобразование данных в Python
  13. Измерение времени выполнения кода
  14. Получение атрибутов и методов класса
  15. Логирование с Loguru
  16. Курс по дообучению ChatGPT
  17. Функции в одну строку
  18. Хранение переменных в словаре.
  19. Работа с многоуровневыми словарями в Python
  20. Создание словарей в Python
  21. Оператор match в Python
  22. Определение наиболее частого элемента с помощью collections.Counter
  23. Обязательные аргументы в Python
  24. Работа с YAML в Python
  25. Работа с collections в Python.
  26. Метод repr() в Python
  27. Использование type hints
  28. Преобразование строк в числа в Python
  29. Декораторы в Python
  30. Логические операторы в Python
  31. Работа с комплексными числами
  32. Подсчет частотности элементов в Python
  33. Функция findall() для поиска вхождений строки
  34. Ошибка NotImplemented в Python
  35. Список и кортеж в Python
  36. Область видимости переменных
  37. Применение функции map() с лямбда-функциями
  38. Создание списков в Python
  39. Инициализация переменных
  40. Оператор continue в Python
  41. Списковое включение в Python
  42. Проверка переменных окружения в Python
  43. Описание скриптов в README

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