Курс 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"
- Поиск с библиотекой Google
- Управление ресурсами в Python
- Создание списка через итерацию
- Обработка исключений в Python
- Удаление элемента из списка
- Оператор «and» в Python
- Переопределение метода __eq__
- Метод getitem для доступа к элементам последовательности
- Блок try-except-else
- Регистрация на курсы SF Education
- Генераторы списков
- Обработка StopIteration в Python
- Beautiful Soup — извлечение данных из HTML
- Обмен данными с asyncio.Queue
- Создание таблиц в Python с PrettyTable
- Манипуляция формой массива в Numpy
- Дизассемблирование Python кода
- Оболочка Python
- Многострочные строки в Python
- Удаление и повторная вставка ключа в OrderedDict
- Dict Comprehension в Python
- Python Менеджер контекста
- Итерация по итерируемым объектам
- Фильтрация входных данных в Python
- Генераторы в Python
- Использование *args
- Операторы сравнения в Python
- Работа с файлами и директориями в Python.
- Метод setitem в Python
- Объединение строк с помощью метода join
- F-строки в Python 3.8
- Установка максимального количества цифр
- Проверка на истинность объектов в Python
- Проверка условий в Python
- Поиск email
- Регистрация на TenChat
- Цикл for в Python
- Создание задания в Cron
- Получение значений из словарей
- Однострочники Python
- Функция product() из itertools
- Метод rlshift для битового сдвига
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Оператор * в Python
- Выбор редактора кода.
- Проверка запуска скрипта или импорта модуля
- Присоединение элементов коллекции















