Можно ли использовать декоратор для класса в Python
Python
Junior
Рунити
Можно ли использовать декоратор для класса в Python
Ответы
Да, декораторы можно применять не только к функциям, но и к классам. Декоратор класса принимает сам класс как аргумент и возвращает модифицированный класс или новый класс. Это удобно для добавления функциональности, проверок или изменения поведения класса.
Пример:
```
def add_method(cls):
def greet(self):
return "Hello from decorator!"
cls.greet = greet
return cls
@add_method
class MyClass:
pass
obj = MyClass()
print(obj.greet()) # Выведет: Hello from decorator!
```
Нюансы:
- Декоратор выполняется сразу при определении класса
- Можно изменять/добавлять методы, атрибуты
- Часто используется для регистрации классов, добавления метаданных
- Альтернатива наследованию в некоторых случаях
Распространённые примеры использования: `@dataclass`, `@property`, `@staticmethod` в стандартной библиотеке.