Курс 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. Поиск с библиотекой Google
  2. Управление ресурсами в Python
  3. Создание списка через итерацию
  4. Обработка исключений в Python
  5. Удаление элемента из списка
  6. Оператор «and» в Python
  7. Переопределение метода __eq__
  8. Метод getitem для доступа к элементам последовательности
  9. Блок try-except-else
  10. Регистрация на курсы SF Education
  11. Генераторы списков
  12. Обработка StopIteration в Python
  13. Beautiful Soup — извлечение данных из HTML
  14. Обмен данными с asyncio.Queue
  15. Создание таблиц в Python с PrettyTable
  16. Манипуляция формой массива в Numpy
  17. Дизассемблирование Python кода
  18. Оболочка Python
  19. Многострочные строки в Python
  20. Удаление и повторная вставка ключа в OrderedDict
  21. Dict Comprehension в Python
  22. Python Менеджер контекста
  23. Итерация по итерируемым объектам
  24. Фильтрация входных данных в Python
  25. Генераторы в Python
  26. Использование *args
  27. Операторы сравнения в Python
  28. Работа с файлами и директориями в Python.
  29. Метод setitem в Python
  30. Объединение строк с помощью метода join
  31. F-строки в Python 3.8
  32. Установка максимального количества цифр
  33. Проверка на истинность объектов в Python
  34. Проверка условий в Python
  35. Поиск email
  36. Регистрация на TenChat
  37. Цикл for в Python
  38. Создание задания в Cron
  39. Получение значений из словарей
  40. Однострочники Python
  41. Функция product() из itertools
  42. Метод rlshift для битового сдвига
  43. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  44. Оператор * в Python
  45. Выбор редактора кода.
  46. Проверка запуска скрипта или импорта модуля
  47. Присоединение элементов коллекции

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