Но сидеть можно на разных стульях, а можно и не на стульях вообще.
Напишите базовый класс Seat (Сиденье), экземпляр при инициализации принимает два параметра: размер и цвет. Умеет только выводить информацию о себе: имя класса и в скобках перечисление аргументов – размер и цвет.
Также напишите четыре класса-наследника:
Chair (Стул), дополнительно определены аргументы: высота и количество ножек;
ArmChair (Кресло), дополнительные аргументы: высота, материал;
Stool (Табурет), + количество ножек;
BagChair (Мешок), + материал.
Постарайтесь написать базовый класс так, чтобы в производных классах не пришлось переопределять его метод __str__: в них выводятся все их аргументы в порядке передачи в экземпляр класса.
Ввод
se = Seat(35, "beige")
ch = Chair(40, "pink", 80, 3)
ach = ArmChair(70, "black", 85, "leather")
st = Stool(48, "white", 3)
bc = BagChair(75, "orange", "matting")
for item in se, ch, ach, st, bc:
print(item)
Вывод
Seat(35, beige)
Chair(40, pink, 80, 3)
ArmChair(70, black, 85, leather)
Stool(48, white, 3)
BagChair(75, orange, matting)
Мой код:
:
class Seat:
def __init__(self, size, color):
self.height = size
self.legs = color
def __str__(self):
return f'{self.__class__.__name__}({", ".join(map(str, self.__dict__.values()))})'
class Chair(Seat):
def __init__(self, size, color, height, legs):
super().__init__(size, color)
self.height = height
self.legs = legs
class ArmChair(Seat):
def __init__(self, size, color, height, mat):
super().__init__(size, color)
self.height = height
self.mat = mat
class Stool(Seat):
def __init__(self, size, color, legs):
super().__init__(size, color)
self.legs = legs
class BagChair(Seat):
def __init__(self, size, color, mat):
super().__init__(size, color)
self.mat = mat
Как сделать так, что бы программа выводила не ток size, color, но и другие параметры классов?
Вывод мой:
Seat(35, beige)
Chair(80, 3)
ArmChair(85, black, leather)
Stool(48, 3)
BagChair(75, orange, matting)