Junior — Middle
109
Pythonдеги классларга декоратор үлгүсүн колдонууга болобу жана аны кантип ишке ашыруу керек?
Кайсыл жерде компаниялар сурады
AIден жооп
sobes.tech AI
Да, в Python паттерн декоратор можно применять к классам. Класс-декоратор — это класс, который принимает другой класс или объект и расширяет или изменяет его поведение, не меняя исходный код.
Пример реализации класс-декоратора:
class Decorator:
def __init__(self, wrapped):
self._wrapped = wrapped
def __getattr__(self, name):
# Делегируем вызовы атрибутов обернутому объекту
return getattr(self._wrapped, name)
def new_method(self):
return "Дополнительное поведение"
class Original:
def original_method(self):
return "Исходное поведение"
obj = Original()
decorated_obj = Decorator(obj)
print(decorated_obj.original_method()) # Исходное поведение
print(decorated_obj.new_method()) # Дополнительное поведение
Таким образом, класс-декоратор оборачивает объект и может добавлять новые методы или изменять существующие, сохраняя интерфейс исходного объекта.