Курс 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"
- Модуль antigravity: генерация координат
- Значения по умолчанию в Python
- Замыкания в Python
- Удаление ключа из словаря
- Python Метод del.
- Обход словаря в Python
- Подсчет элементов с помощью Counter из collections
- Оператор «not» в Python
- Нахождение разницы между списками в Python
- Создание вложенного генератора
- Работа со стеком в Python
- Создание новых функций через partial
- Логирование с Logzero
- Создание списков в Python
- Список и кортеж в Python
- Модуль xkcd: добавление юмора в Python
- Ускорение выполнения кода в Python
- IPython и Jupyter Notebook: руководство
- Измерение времени выполнения кода
- Генераторы в Python
- Фильтрация элементов с помощью islice
- Подписка на SelectelNews в Twitter
- Резервирование символов в Python
- Документирование функций в Python
- Работа с функцией next() в Python
- Методы Python для работы с данными
- Создание уникального множества
- Профилирование кода на Python
- Лямбда-функции для min/max
- Работа со строками в Python
- Concrete Paths в Python
- Аргумент по умолчанию
- Регулярные выражения в Python
- Генераторы в Python
- Создание класса очереди
- Оператор «моржа» (Walrus Operator)
- Оптимизация памяти с slots
- Namedtuple в Python
- Объединение, распаковка и деструктуризация
- Исключение NotImplementedError
- Список переменных с %who
- Работа с датой и временем в Python
- Генераторы в Python
- Логические значения в Python
- Объединение списков в Python.















