Курс 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"
- Enum в Python: создание и использование перечислений
- Сортировка в Python
- Работа с модулем bisect
- Оператор match в Python
- Модуль subprocess: запуск внешних команд
- Управление User-Agent в Python
- Таймер обратного отсчета
- Работа с collections в Python.
- Представление бесконечности в Python
- Модуль pprint: улучшение вывода данных
- Работа со стеком в Python
- Создание GUI на Tkinter
- Добавление цвета в консоли
- Проверка версии Python
- Срезы в Python
- Избегайте пустого списка
- Работа с необработанными строками
- Установка и обучение ChatterBot
- Построение графиков в терминале с bashplotlib
- Циклы в Python
- Нан-рефлексивность в Python
- Фильтрация входных данных в Python
- Назначение максимального и минимального значения переменной в Python.
- Определение функций с необязательными аргументами
- Переопределение метода __rshift__
- Бесконечная проверка в Python
- Метод Self в Python
- Реверс строки и списка в Python.
- Поиск всех индексов подстроки
- Проверка кортежей.
- Оператор += для объединения строк
- Форматирование строк с f-строками
- Цикл while в Python
- Декораторы в Python
- Python Метод sleep() времени
- Удаление файлов и папок в Python
- Функция zip() — объединение последовательностей
- Numpy: разбиение массивов
- Срез списка в Python
- Математические функции в Python
- Создание коллекций из генератора
- Объединение строк с помощью метода join
- Работа с файловой системой в Python
- Оператор объединения словарей
- Работа с CSV файлами в Python
- Анонимные функции в Python















