Курс 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
- List Comprehension Tutorial
- Python OrderedDict и fromkeys() — работа с словарями
- Изменение элемента списка
- Генераторы в Python
- Показ всплывающих окон Tkinter
- Метод join() для объединения строк
- Добавление цвета в консоли
- Преобразование чисел в Python
- Структурирование именованных констант
- Подсчет частотности элементов в Python
- Управление экспортом элементов
- Метод округления чисел
- Операции с числами в Python
- Создание объекта времени
- Конвертация коллекций в Python.
- Операции со строками в Python
- Синхронизация потоков с time.sleep()
- Пропуск начальных строк с помощью dropwhile()
- Операторы Splat и splatty-splat
- Numpy: объединение массивов
- Добавление кнопки в tkinter
- Модуль math: основные функции
- Объединение словарей в Python
- Обход элементов в Python
- Метод join() для объединения элементов
- Работа с парами ключ-значение
- Функция zip() — объединение последовательностей
- Работа с изменяемыми коллекциями
- Цикл for в Python
- Открытие и редактирование скриптов Python
- Работа с контекстными менеджерами
- Python Метод sleep() времени
- Numpy: разбиение массивов
- Просмотр атрибутов и методов класса
- Анализ кода — Python
- Декораторы в Python
- Замена элементов в списке с помощью генераторов списков
- Работа с дробями в Python
- Метод Enumerate() для списков
- Подсчет элементов в Python
- Функции-генераторы в Python
- Создание класса в Python
- Переворот строки с использованием цикла
- Выбор редактора кода.















