Курс 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"
- Регистрация на курсы SF Education
- Оператор continue в Python
- Оператор Walrus в Python
- Округление дробей в Python
- Комментарии в Python
- Получение локальных переменных в Python
- Очистка списка от False, None, 0, «»
- Работа с YAML в Python: PyYAML.
- Принципы LSP и ISP в Python
- Доступ к локальным переменным
- Преобразование числа в список цифр
- Работа с библиотекой xkcd
- Многоточие в Python
- Логирование с Logzero: ротация файла
- Многострочные строки в Python
- Работа с аргументами командной строки в Python
- Функция zip() в Python
- Капитализация строк
- Приближение чисел в Python
- Эффективная конкатенация строк с использованием join()
- Обход словаря в Python
- Утечки переменных цикла в Python 3.x
- Фильтрация списков с itertools
- Удаление ключей из словаря
- Циклы for в Python
- Удаление ссылок в Python
- Списковое включение в Python
- Работа с часовыми поясами в Python.
- Резервирование символов в Python
- Копирование файлов с shutil()
- Транспонирование матрицы в Python
- Объединение словарей в Python
- Python Enumerate
- Работа с URL-адресами в Python
- Обработка исключений
- Сравнение строк в Python
- Форматирование данных с pprint
- Объединение множеств в Python
- Сортировка данных в Python
- Объединение списков с использованием itertools.chain
- Удаление файлов с shutil.os.remove()
- Объединение списков в строку
- Безопасные SQL-запросы в Python 3.11
- Numpy: объединение массивов
- Работа с очередями в Python
- Проверка запуска скрипта или импорта модуля
- Python Enum Weekday Usage















