1

我正在使用此处找到的已回答问题中的代码。

存储婚姻信息的最蟒蛇方式是什么?我希望可以从存储在类中的任何已婚人士那里询问 self.husband 或 self.wife,并递归地从这些人那里询问 self.children。

class Person:
    ID = itertools.count()
    def __init__(self, name, parent=None, level=0):
        self.id = self.__class__.ID.next() # next(self.__class__.ID) in python 2.6+
        self.parent = parent
        self.name = name
        self.level = level
        self.children = []

def createTree(d, parent=None, level=0):
    if d:
        member = Person(d['parent'], parent, level)
        level = level + 1
        member.children = [createTree(child, member, level) for child in d['children']]
        return member

t = createTree(my_tree)  # my_tree is the name of thedictionary storing parents and children. Need 'parent' key to become 'parents' key which stores a list of two people.
4

1 回答 1

0

您在这里看到的是有向图,而不是试图自己提出一个好的模型。我会使用 networkx 创建图表。这将为您提供一系列用于搜索图表、显示、从中获取统计数据的工具。因此,您可以创建一个人作为节点,然后为父母和孩子创建边。如果您稍后需要,您可以为边缘创建添加限制。 https://networkx.github.io/documentation/latest/tutorial/tutorial.html

于 2015-08-09T15:01:25.217 回答