Answer
t.me/python_tesstОтвет:
Sample2(a=1, b=2, c=3)
Объяснение:
Декорировать можно не только функции, но и классы, например, можно реализовать декоратор, добавляющий метод преобразования класса в строку. Декоратор — это структурный паттерн проектирования, который позволяет динамически добавлять объектам новую функциональность, оборачивая их в полезные «обёртки». Декоратор имеет альтернативное название — обёртка. Оно более точно описывает суть паттерна: вы помещаете целевой объект в другой объект-обёртку, который запускает базовое поведение объекта, а затем добавляет к результату что-то своё.
Код:
from typing import Type def auto_str(c: Type): def str(self): variables = [f"{k}={v}" for k, v in vars(self).items()] return f"{c.__name__}({', '.join(variables)})" c.__str__ = str return c class Sample1: def __init__(self, a, b): self.a = a self.b = b @auto_str class Sample2(Sample1): def __init__(self, a, b, c): super().__init__(a, b) self.c = c print(str(Sample2(1, 2, 3)))