Курс 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"
- Работа с итераторами через срезы
- Метод __int__ в Python
- Цикл for в Python
- Работа с модулем random
- Поиск повторов в списке
- Проверка элементов списка условием
- Python itertools combinations() — группировка элементов
- Склеивание строк без циклов
- Официальный канал Python в Telegram
- Создание класса очереди
- Нахождение разницы между списками в Python
- Создание объекта времени
- Функция reduce() в Python
- Использование эмодзи в Python
- Безопасные SQL-запросы в Python 3.11
- Оператор (*) в Python
- Конвертация коллекций в Python
- Управление импортом в Python
- Генераторные выражения и islice.
- Установка User-Agent в Python
- Объединение словарей в Python
- Встроенные функции Python
- Работа с классами данных
- Генераторы по генератору
- Настройка нарезки списков
- Работа с YAML в Python
- Установка и использование библиотеки google
- Множества и frozenset
- Объединение списков с использованием itertools.chain
- Проблемы с именами переменных
- Функции all() и any() в Python
- Работа с функцией next() в Python
- Создание GUI с Tkinter: Entry
- Преобразование в float
- Метод join() для объединения элементов
- Python: Фильтрация списков с помощью filter()
- Метод __irshift__ для Python
- Область видимости переменных
- Структурирование именованных констант
- Установка Python3.7 и PIP
- capitalize() — изменение регистра первого символа строки
- Хранение переменных в словаре.















