Курс 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"
- Сортировка с помощью параметра key
- Удаление файлов и папок в Python
- Проверка надежности пароля на Python
- Создание namedtuple списком полей
- Библиотека wikipedia для Python
- Метод join() для объединения элементов строки
- Анонимные функции Lambda
- Динамическая типизация в Python
- Установка random seed в Python
- Работа с CSV файлами в Python
- Поиск самого длинного слова в списке с использованием max()
- Lambda Functions in Python
- Генераторы в Python
- Избегание циклических зависимостей классов в Python
- Переопределение метода sub
- Разделение строк в Python
- Работа с кортежами в Python
- Лямбда-функции для min/max
- Управление асинхронными задачами с помощью Semaphore
- Измерение времени выполнения кода
- Определение наиболее частого элемента с помощью collections.Counter
- Поиск кода
- Удаление эмодзи с помощью pandas
- Операции с числами в Python
- Создание лямбда-функций
- Базовые объекты Python
- Работа с кортежами в Python
- Использование super() в Python
- Concrete Paths в Python
- Цепные операции в Python
- Проверка элемента в множестве.
- Оптимизация гиперпараметров в Python
- Управление экспортом элементов
- Освобождение памяти в Python
- F-строки в Python 3.8
- Проверка версии Python
- Множественное присваивание в Python
- Кортеж в Python: создание, доступ, изменение
- Метод bool() в Python
- Извлечение аудио из видео
- Библиотека sh: использование команд bash в Python
- Передача параметров в Python
- Поиск всех индексов подстроки
- Работа с часовыми поясами в Python.
- Dict Comprehension в Python
- Операторы сравнения в Python
- Возвращение нескольких значений через кортеж или класс















