Есть родительский класс и два дочерних,в каждом из детей переопределен баз.метод с условием вывода той или иной строки.Не работает вывод через return
class Bird:
def __init__(self, name, size):
self.name = name
self.size = size
def describe(self, full=False):
return f'Размер птицы {self.name} — {self.size}.'
class Parrot(Bird):
def __init__(self, name, size, color):
super().__init__(name, size)
self.color = color
# Переопределите метод describe().
def describe(self, full=False):
if full:
!!! если вместо return я поставлю print то все работает, с return нет никакого вывода !!!
return (f'Попугай {self.name} — заметная птица, '
f'окрас её перьев — {self.color}, '
f'а размер — {self.size}. '
'Интересный факт: попугаи чувствуют ритм, '
'а вовсе не бездумно двигаются под музыку. '
'Если сменить композицию, '
'то и темп движений птицы изменится.')
return super().describe()
class Penguin(Bird):
def __init__(self, name, size, genus):
super().__init__(name, size)
self.genus = genus
# Переопределите метод describe().
def describe(self, full=False):
if full:
!!! если вместо return я поставлю print то все работает, с return нет никакого вывода !!!
return (f'Размер пингвина {self.name} '
f'из рода {self.genus} — {self.size}. '
'Интересный факт: однажды группа геологов-разведчиков '
'похитила пингвинье яйцо, '
'и их принялась преследовать вся стая, '
'не пытаясь, впрочем, при этом нападать. '
'Посовещавшись, похитители вернули птицам яйцо, '
'и те отстали. ')
return super().describe()
kesha = Parrot('Ара', 'средний', 'красный')
kowalski = Penguin('Королевский', 'большой', 'Aptenodytes')
kesha.describe()
kowalski.describe(True)
Этот блок кода с обучающей платформы и должен считаться правильным. Хотелось бы разобраться почему не работает вывод с return , есть ли проблема в коде !? В изучении Python я новичок и буду очень благодарна за любую подсказку или комментарий. У меня используется VSCODE версии 1.74.2 и интерпретатор Python версии 3.9.10.