Курс 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. Enum в Python: создание и использование перечислений
  2. Сортировка в Python
  3. Работа с модулем bisect
  4. Оператор match в Python
  5. Модуль subprocess: запуск внешних команд
  6. Управление User-Agent в Python
  7. Таймер обратного отсчета
  8. Работа с collections в Python.
  9. Представление бесконечности в Python
  10. Модуль pprint: улучшение вывода данных
  11. Работа со стеком в Python
  12. Создание GUI на Tkinter
  13. Добавление цвета в консоли
  14. Проверка версии Python
  15. Срезы в Python
  16. Избегайте пустого списка
  17. Работа с необработанными строками
  18. Установка и обучение ChatterBot
  19. Построение графиков в терминале с bashplotlib
  20. Циклы в Python
  21. Нан-рефлексивность в Python
  22. Фильтрация входных данных в Python
  23. Назначение максимального и минимального значения переменной в Python.
  24. Определение функций с необязательными аргументами
  25. Переопределение метода __rshift__
  26. Бесконечная проверка в Python
  27. Метод Self в Python
  28. Реверс строки и списка в Python.
  29. Поиск всех индексов подстроки
  30. Проверка кортежей.
  31. Оператор += для объединения строк
  32. Форматирование строк с f-строками
  33. Цикл while в Python
  34. Декораторы в Python
  35. Python Метод sleep() времени
  36. Удаление файлов и папок в Python
  37. Функция zip() — объединение последовательностей
  38. Numpy: разбиение массивов
  39. Срез списка в Python
  40. Математические функции в Python
  41. Создание коллекций из генератора
  42. Объединение строк с помощью метода join
  43. Работа с файловой системой в Python
  44. Оператор объединения словарей
  45. Работа с CSV файлами в Python
  46. Анонимные функции в Python

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