Курс 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"
- Разделение списка на гнппы
- Глобальные переменные в Python
- Искажение имен в Python
- Работа с модулем bisect
- Сериализация данных в JSON с помощью json.dumps
- Работа с модулем random
- Объединение словарей в Python
- Строки в Python: апострофы и кавычки
- Создание новых списков в Python
- Метод setdefault() в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Генераторы списков в Python
- Объединение списков в Python
- Разработка игры Pong с turtle
- Обработка ошибок в JSON данных
- Функция all() в Python
- Округление чисел с помощью round
- Определение размера папок в Python
- Манипуляция формой массива в Numpy
- Удаление пробелов методом translate()
- Форматирование даты с strftime()
- Сортировка в Python
- Запуск Python из интерпретатора
- Замена подстроки
- Оператор объединения словарей
- Структурирование именованных констант
- Курс по дообучению ChatGPT
- Модуль sys: основы
- Оператор match в Python
- Работа с изменяемыми списками
- Применение функции map() с лямбда-функциями
- Деление в Python
- Структурирование данных с Pydantic
- Установка и использование модуля Wikipedia
- Форматирование данных с помощью pprint
- Метод __int__ в Python
- Удаление элементов по срезу
- Глобальные переменные в Python
- Объединение словарей в Python
- Явный импорт в Python
- Функция enumerate() — Python
- Преобразование числа в восьмеричную строку
- Объединение итераторов
- Генераторы в Python
- Комплексные числа в Python
- Сравнение строк в Python
- Работа с *args и **kwargs в Python
- Отрицательные индексы списков















