димый опыт всей династии космонавтов, начиная с заданного космонавта и включая его родителей, бабушек и дедушек.
Для решения задачи можно использовать рекурсию.
Шаги решения:
1. Создайте метод `count_dynasty_experience`, который будет проходить рекурсивно по каждому родителю космонавта и суммировать их `space_experience`.
2. Внутри метода `count_dynasty_experience` проверьте, есть ли родитель у текущего космонавта. Если родитель есть, вызовите рекурсивно `count_dynasty_experience` для родителя и добавьте его `space_experience` к общей сумме.
3. После подсчета опыта родителей, добавьте `space_experience` текущего космонавта к общей сумме.
4. Возвращайте общую сумму опыта после завершения рекурсии.
Пример реализации:
“`python
class DynastyExperienceCounter:
def __init__(self, spaceman):
self.spaceman = spaceman
def count_dynasty_experience(self):
return self._count_dynasty_experience_helper(self.spaceman)
def _count_dynasty_experience_helper(self, spaceman):
total_experience = spaceman.space_experience
if spaceman.father:
total_experience += self._count_dynasty_experience_helper(spaceman.father)
if spaceman.mother:
total_experience += self._count_dynasty_experience_helper(spaceman.mother)
return total_experience
“`
Теперь, когда метод `count_dynasty_experience` реализован, вы можете создать экземпляр класса `DynastyExperienceCounter`, передав в конструктор объект вашего космонавта и вызвать метод `count_dynasty_experience` для подсчета общего опыта династии.