下面是一个示例代码,用于计算家谱中两个人的亲属关系程度:
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
self.children = []
def add_child(self, child):
self.children.append(child)
def get_relationship_degree(self, person):
if self == person: # 判断是否为同一人
return 0
degree = self._search_relationship(person, 0) # 调用私有方法进行递归搜索
if degree is None:
return "无法确定关系"
else:
return degree
def _search_relationship(self, person, degree):
if self == person: # 判断是否为同一人
return degree
for child in self.children:
result = child._search_relationship(person, degree + 1) # 递归搜索子代
if result is not None:
return result
return None # 未找到关系
# 创建家谱
grandfather = Person("爷爷", "男")
father = Person("爸爸", "男")
mother = Person("妈妈", "女")
child = Person("我", "男")
grandfather.add_child(father)
father.add_child(child)
father.add_child(mother)
# 计算亲属关系程度
relationship_degree = grandfather.get_relationship_degree(child)
print(f"亲属关系程度:{relationship_degree}")
在上面的示例中,我们创建了一个Person
类表示家谱中的每个人,该类包含姓名、性别和子女等属性。add_child
方法用于添加子女。get_relationship_degree
方法用于计算两个人的亲属关系程度。_search_relationship
方法是一个私有方法,用于进行递归搜索两个人之间的关系。
在示例中,我们创建了一个简单的家谱,并计算了爷爷和我之间的亲属关系程度。输出结果将是亲属关系程度的数值,如果无法确定关系则输出"无法确定关系"。