Курс 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. Возврат нескольких значений из функции
  3. Названия столбцов в Python таблицах
  4. F-строки в Python 3.8
  5. Методы и функции в Python
  6. Создание Radio кнопок в tkinter
  7. Импорт модулей в Python 3.12
  8. Автоматизация действий с Pyautogui
  9. Нахождение пересечения множеств
  10. Фильтрация списка от «ложных» значений
  11. Перебор элементов списка в Python
  12. Создание обратного итератора
  13. Python Метод del.
  14. Работа с контекст-менеджером «with»
  15. Создание графики с черепахой
  16. Добавление вложенных списков
  17. Удаление ресурса в Python
  18. Итерации в Python
  19. Метод setdefault() в Python
  20. Векторизация в Python с NumPy.
  21. Экспорт данных в файл.
  22. Оптимизация сравнения в Python
  23. Улучшение читаемости кода в Python
  24. Сравнение строк в Python
  25. Наиболее частотные элементы с помощью Counter
  26. Принципы программирования
  27. Преобразование в float
  28. Подписка на каналы разработчиков
  29. Сортировка HTML по CSS-селектору
  30. Аннотации типов в Python
  31. Синтаксис переменных цикла в Python
  32. Основные операции с библиотекой Numpy
  33. Активация Matplotlib в Jupyter
  34. Сортировка с параметром key
  35. Concrete Paths в Python
  36. Многопоточность и асинхронное программирование в Python
  37. Округление дробей в Python
  38. Документирование функций в Python
  39. Python Translator: создание локальных переводчиков
  40. Расчет времени выполнения кода
  41. Добавление элемента в список.
  42. Функции range() в Python
  43. Python Метод sleep() времени
  44. Применение функции к элементам списка
  45. Работа с Event() в threading
  46. Реверс строки в Python
  47. Преобразование числа в восьмеричную строку

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