Курс 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. Глобальные переменные в Python
  3. Искажение имен в Python
  4. Работа с модулем bisect
  5. Сериализация данных в JSON с помощью json.dumps
  6. Работа с модулем random
  7. Объединение словарей в Python
  8. Строки в Python: апострофы и кавычки
  9. Создание новых списков в Python
  10. Метод setdefault() в Python
  11. Каналы Senior: Python, Java, Frontend, SQL, C++
  12. Генераторы списков в Python
  13. Объединение списков в Python
  14. Разработка игры Pong с turtle
  15. Обработка ошибок в JSON данных
  16. Функция all() в Python
  17. Округление чисел с помощью round
  18. Определение размера папок в Python
  19. Манипуляция формой массива в Numpy
  20. Удаление пробелов методом translate()
  21. Форматирование даты с strftime()
  22. Сортировка в Python
  23. Запуск Python из интерпретатора
  24. Замена подстроки
  25. Оператор объединения словарей
  26. Структурирование именованных констант
  27. Курс по дообучению ChatGPT
  28. Модуль sys: основы
  29. Оператор match в Python
  30. Работа с изменяемыми списками
  31. Применение функции map() с лямбда-функциями
  32. Деление в Python
  33. Структурирование данных с Pydantic
  34. Установка и использование модуля Wikipedia
  35. Форматирование данных с помощью pprint
  36. Метод __int__ в Python
  37. Удаление элементов по срезу
  38. Глобальные переменные в Python
  39. Объединение словарей в Python
  40. Явный импорт в Python
  41. Функция enumerate() — Python
  42. Преобразование числа в восьмеричную строку
  43. Объединение итераторов
  44. Генераторы в Python
  45. Комплексные числа в Python
  46. Сравнение строк в Python
  47. Работа с *args и **kwargs в Python
  48. Отрицательные индексы списков

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