Загрузка данных


class Base:
    def __init__(self, val1):
        self.field1 = val1

    def set_data(self, val1):
        self.field1 = val1

    def show(self):
        print(f"Поле 1: {self.field1}")

class Child(Base):
    def __init__(self, val1, val2):
        # Передаем базовому классу ТОЛЬКО его один аргумент val1
        super().__init__(val1)
        self.field2 = val2

    def set_data(self, val1, val2):
        super().set_data(val1)
        self.field2 = val2

    def show(self):
        super().show()
        print(f"Поле 2: {self.field2}")

class GrandChild(Child):
    def __init__(self, val1, val2, val3):
        # Передаем родительскому классу ТОЛЬКО два аргумента val1 и val2
        super().__init__(val1, val2)
        self.field3 = val3

    def set_data(self, val1, val2, val3):
        super().set_data(val1, val2)
        self.field3 = val3

    def show(self):
        super().show()
        print(f"Поле 3: {self.field3}")

# Проверка
obj = GrandChild(10, "Привет", 5.5)
obj.show()
print("--- Изменение значений ---")
obj.set_data(20, "Мир", 9.9)
obj.show()