Курс 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. Поиск индекса элемента
  4. Генерация UUID в Python
  5. Оператор «not» в Python
  6. Список импортированных модулей в Python
  7. Работа с срезами в Numpy
  8. Основы Python
  9. Работа с множествами в Python
  10. Установка Home Assistant
  11. Возвращение нескольких значений через кортеж или класс
  12. Получение ID текущего процесса
  13. Декораторы в Python
  14. Проверка подстроки в строке
  15. Вызов функций по строке в Python.
  16. Форматирование кода на Python
  17. Изменения в обработке логических значений
  18. Профилирование кода на Python
  19. Объединение словарей в Python
  20. Решение переменной Шредингера
  21. Сортировка и обратный порядок
  22. Блок else в циклах Python
  23. Округление чисел с помощью round
  24. Измерение времени выполнения кода с использованием time
  25. Отступы в Python
  26. Инверсия списка и строки в Python
  27. Виртуальное окружение Python
  28. Слияние словарей в Python 3.9
  29. Конкатенация строковых литералов
  30. Оптимизация параметров в Python
  31. Безопасные SQL-запросы в Python 3.11
  32. Функции классификации комплексных чисел
  33. Построение графиков в Matplotlib
  34. Модуль math: основные функции
  35. Работа с часовыми поясами в Python
  36. Работа с датами в Python
  37. Импорт и использование модулей в Python
  38. Удаление элемента по индексу
  39. Идентификатор объекта в Python
  40. Форматирование чисел в Python
  41. Создание GUI с Tkinter: Entry
  42. Декоратор защиты анонимных пользователей

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