Курс 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. Регистрация на курсы SF Education
  2. Оператор continue в Python
  3. Оператор Walrus в Python
  4. Округление дробей в Python
  5. Комментарии в Python
  6. Получение локальных переменных в Python
  7. Очистка списка от False, None, 0, «»
  8. Работа с YAML в Python: PyYAML.
  9. Принципы LSP и ISP в Python
  10. Доступ к локальным переменным
  11. Преобразование числа в список цифр
  12. Работа с библиотекой xkcd
  13. Многоточие в Python
  14. Логирование с Logzero: ротация файла
  15. Многострочные строки в Python
  16. Работа с аргументами командной строки в Python
  17. Функция zip() в Python
  18. Капитализация строк
  19. Приближение чисел в Python
  20. Эффективная конкатенация строк с использованием join()
  21. Обход словаря в Python
  22. Утечки переменных цикла в Python 3.x
  23. Фильтрация списков с itertools
  24. Удаление ключей из словаря
  25. Циклы for в Python
  26. Удаление ссылок в Python
  27. Списковое включение в Python
  28. Работа с часовыми поясами в Python.
  29. Резервирование символов в Python
  30. Копирование файлов с shutil()
  31. Транспонирование матрицы в Python
  32. Объединение словарей в Python
  33. Python Enumerate
  34. Работа с URL-адресами в Python
  35. Обработка исключений
  36. Сравнение строк в Python
  37. Форматирование данных с pprint
  38. Объединение множеств в Python
  39. Сортировка данных в Python
  40. Объединение списков с использованием itertools.chain
  41. Удаление файлов с shutil.os.remove()
  42. Объединение списков в строку
  43. Безопасные SQL-запросы в Python 3.11
  44. Numpy: объединение массивов
  45. Работа с очередями в Python
  46. Проверка запуска скрипта или импорта модуля
  47. Python Enum Weekday Usage

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