Python - 使用 类 存储婚姻信息
Python - Store marriage information using classes
我正在使用 here.
已回答问题中的代码
存储婚姻信息的最 pythonic 方式是什么?我希望可以向存储在 class 中的任何已婚人士请求 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.
您在这里看到的不是一个好的模型,而是一个有向图。我会使用 networkx 来创建图形。这将为您提供一系列工具,用于搜索图表、显示图表并从中获取统计信息。
因此,您可以创建一个人作为节点,然后创建 parents 和 children 的边。如果以后需要,您可以对边创建添加限制。
https://networkx.github.io/documentation/latest/tutorial/tutorial.html
我正在使用 here.
已回答问题中的代码存储婚姻信息的最 pythonic 方式是什么?我希望可以向存储在 class 中的任何已婚人士请求 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.
您在这里看到的不是一个好的模型,而是一个有向图。我会使用 networkx 来创建图形。这将为您提供一系列工具,用于搜索图表、显示图表并从中获取统计信息。 因此,您可以创建一个人作为节点,然后创建 parents 和 children 的边。如果以后需要,您可以对边创建添加限制。 https://networkx.github.io/documentation/latest/tutorial/tutorial.html