python亲戚关系计算器源代码
时间: 2023-05-20 19:03:08 浏览: 119
以下是一个简单的 Python 亲戚关系计算器的源代码:
```python
class Person:
def __init__(self, name, gender, father=None, mother=None):
self.name = name
self.gender = gender
self.father = father
self.mother = mother
def is_male(self):
return self.gender == 'male'
def is_female(self):
return self.gender == 'female'
def is_parent_of(self, person):
return self == person.father or self == person.mother
def is_sibling_of(self, person):
return self != person and self.father == person.father and self.mother == person.mother
def is_ancestor_of(self, person):
if self == person:
return True
elif person.father and self.is_ancestor_of(person.father):
return True
elif person.mother and self.is_ancestor_of(person.mother):
return True
else:
return False
def is_descendant_of(self, person):
return person.is_ancestor_of(self)
def get_relationship(person1, person2):
if person1.is_parent_of(person2):
if person2.is_male():
return 'father'
else:
return 'mother'
elif person1.is_sibling_of(person2):
if person1.is_male():
return 'brother'
else:
return 'sister'
elif person1.is_ancestor_of(person2):
if person1.is_male():
return 'ancestor'
else:
return 'ancestor'
elif person1.is_descendant_of(person2):
if person1.is_male():
return 'descendant'
else:
return 'descendant'
else:
return 'unrelated'
```
你可以使用这个代码来计算两个人之间的亲戚关系。例如,如果你有一个名为 Alice 的女性祖母和一个名为 Bob 的男性表兄弟,你可以创建这些人的对象并调用 `get_relationship` 函数来计算他们之间的关系:
```python
alice = Person('Alice', 'female')
bob = Person('Bob', 'male')
alice_daughter = Person('Alice\'s daughter', 'female', alice)
bob_father = Person('Bob\'s father', 'male')
alice_daughter_son = Person('Alice\'s daughter\'s son', 'male', father=None, mother=None)
bob_father_son = Person('Bob\'s father\'s son', 'male', father=bob_father, mother=None)
print(get_relationship(alice, bob)) # unrelated
print(get_relationship(alice, alice_daughter)) # mother
print(get_relationship(alice, alice_daughter_son)) # descendant
print(get_relationship(alice, bob_father_son)) # unrelated
```