-
Notifications
You must be signed in to change notification settings - Fork 0
/
person.py
32 lines (29 loc) · 839 Bytes
/
person.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Person:
def __init__(
self,
name,
male=True,
):
self.name = name
self.male = male
self.father = None
self.mother = None
self.partner = None
self.children = []
def add_partner(self, partner):
self.partner = partner
partner.partner = self
self.partner.add_children(self.children)
self.add_children(partner.children)
def add_child(self, child):
if not child in self.children:
self.children.append(child)
if self.male:
child.father = self
else:
child.mother = self
def add_children(self, children):
for child in children:
self.add_child(child)
if self.partner:
self.partner.add_child(child)