Курс 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. Метод __int__ в Python
  3. Цикл for в Python
  4. Работа с модулем random
  5. Поиск повторов в списке
  6. Проверка элементов списка условием
  7. Python itertools combinations() — группировка элементов
  8. Склеивание строк без циклов
  9. Официальный канал Python в Telegram
  10. Создание класса очереди
  11. Нахождение разницы между списками в Python
  12. Создание объекта времени
  13. Функция reduce() в Python
  14. Использование эмодзи в Python
  15. Безопасные SQL-запросы в Python 3.11
  16. Оператор (*) в Python
  17. Конвертация коллекций в Python
  18. Управление импортом в Python
  19. Генераторные выражения и islice.
  20. Установка User-Agent в Python
  21. Объединение словарей в Python
  22. Встроенные функции Python
  23. Работа с классами данных
  24. Генераторы по генератору
  25. Настройка нарезки списков
  26. Работа с YAML в Python
  27. Установка и использование библиотеки google
  28. Множества и frozenset
  29. Объединение списков с использованием itertools.chain
  30. Проблемы с именами переменных
  31. Функции all() и any() в Python
  32. Работа с функцией next() в Python
  33. Создание GUI с Tkinter: Entry
  34. Преобразование в float
  35. Метод join() для объединения элементов
  36. Python: Фильтрация списков с помощью filter()
  37. Метод __irshift__ для Python
  38. Область видимости переменных
  39. Структурирование именованных констант
  40. Установка Python3.7 и PIP
  41. capitalize() — изменение регистра первого символа строки
  42. Хранение переменных в словаре.

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