Python-使用类存储婚姻信息
我正在使用找到的已回答问题的代码 存储婚姻信息的最具Python风格的方式是什么?我希望能够从存储在类中的任何已婚人士处请求self.human或self.wife,并递归地从这些人处请求self.childrenPython-使用类存储婚姻信息,python,class,family-tree,Python,Class,Family Tree,我正在使用找到的已回答问题的代码 存储婚姻信息的最具Python风格的方式是什么?我希望能够从存储在类中的任何已婚人士处请求self.human或self.wife,并递归地从这些人处请求self.children class Person: ID = itertools.count() def __init__(self, name, parent=None, level=0): self.id = self.__class__.ID.next() # next
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.
与其自己尝试出一个好的模型,不如看一个有向图。我将使用networkx创建图形。这将为您提供一系列工具,用于在图形中搜索、显示和获取统计信息。 因此,可以创建一个人作为节点,然后创建父节点和子节点的边。如果以后需要,可以向边创建添加限制。
您现在看到的是一个有向图,而不是自己尝试出一个好的模型。我将使用networkx创建图形。这将为您提供一系列工具,用于在图形中搜索、显示和获取统计信息。 因此,可以创建一个人作为节点,然后创建父节点和子节点的边。如果以后需要,可以向边创建添加限制。