Курс 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. List Comprehension Tutorial
  4. Python OrderedDict и fromkeys() — работа с словарями
  5. Изменение элемента списка
  6. Генераторы в Python
  7. Показ всплывающих окон Tkinter
  8. Метод join() для объединения строк
  9. Добавление цвета в консоли
  10. Преобразование чисел в Python
  11. Структурирование именованных констант
  12. Подсчет частотности элементов в Python
  13. Управление экспортом элементов
  14. Метод округления чисел
  15. Операции с числами в Python
  16. Создание объекта времени
  17. Конвертация коллекций в Python.
  18. Операции со строками в Python
  19. Синхронизация потоков с time.sleep()
  20. Пропуск начальных строк с помощью dropwhile()
  21. Операторы Splat и splatty-splat
  22. Numpy: объединение массивов
  23. Добавление кнопки в tkinter
  24. Модуль math: основные функции
  25. Объединение словарей в Python
  26. Обход элементов в Python
  27. Метод join() для объединения элементов
  28. Работа с парами ключ-значение
  29. Функция zip() — объединение последовательностей
  30. Работа с изменяемыми коллекциями
  31. Цикл for в Python
  32. Открытие и редактирование скриптов Python
  33. Работа с контекстными менеджерами
  34. Python Метод sleep() времени
  35. Numpy: разбиение массивов
  36. Просмотр атрибутов и методов класса
  37. Анализ кода — Python
  38. Декораторы в Python
  39. Замена элементов в списке с помощью генераторов списков
  40. Работа с дробями в Python
  41. Метод Enumerate() для списков
  42. Подсчет элементов в Python
  43. Функции-генераторы в Python
  44. Создание класса в Python
  45. Переворот строки с использованием цикла
  46. Выбор редактора кода.

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