Sobes.tech
Junior — Middle
128

Оё мумкин аст, ки намунаи ороишгарро ба синфҳо дар 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())       # Дополнительное поведение

Таким образом, класс-декоратор оборачивает объект и может добавлять новые методы или изменять существующие, сохраняя интерфейс исходного объекта.