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()