Top.Mail.Ru

димый опыт всей династии космонавтов, начиная с заданного космонавта и включая его родителей, бабушек и дедушек.

Для решения задачи можно использовать рекурсию.

Шаги решения:
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` для подсчета общего опыта династии.

   
[metform form_id="1136"]