Я реализую класс «человек» с именами аргументов, заголовками и дочерними элементами. Функция «desc» должна возвращать список лиц, находящихся под генеалогическим деревом.Python: Семейный класс
До сих пор я сделал это:
class Person():
def __init__(self, name, title, children=None):
self.name = name
self.title = title
if children is None:
self.children = []
else:
self.children = children
def desc(self):
self.out = []
if self.children:
for kid in self.children:
self.out.append(kid)
return self.out
p1 = Person("p1", "test")
p2 = Person("p2", "test", children = [p1])
p3 = Person("p3", "test")
p4 = Person("p4", "test", children = [p2, p3])
p5 = Person("p5", "boss", children = [p4])
print [person.title for person in p5.desc()]
# desired output:
# ['test', 'test', 'test','test']
print [person.name for person in p5.desc()]
# desired output:
# ['p4', 'p2', 'p1', 'p3']
Но мой фактический выход не выглядит как желаемому. Итак, мой вопрос: как бы вы спасли детей? В простом списке? Проблема явно в def desc(). Спасибо за любую помощь!
ли эта работа? Не следует ли «george» и все имена быть строками? – Maroun