""" Module to demonstrate the Person Class Author: Anne Bracy (awb93) Date: March 17, 2018 """ import person shmi = person.Person("Shmi Skywalker", None, None) anakin = person.Person("Anakin Skywalker", shmi, None) padme = person.Person("Padme Amidala", None, None) leia = person.Person("Leia Organa", anakin, padme) han = person.Person("Han Solo", None, None) ben = person.Person("Ben/Kylo Ren", leia, han) def all_ancestors(p): print(p.name) if not p.parent1 == None: all_ancestors(p.parent1) if not p.parent2 == None: all_ancestors(p.parent2) def num_ancestors(p): """Returns: num of known ancestors Pre: p is a Person""" # 1 Base case. if p.parent1 == None and p.parent2 == None: return 0 # 2. Break into two parts parent1s = 0 if p.parent1 != None: parent1s = 1+num_ancestors(p.parent1) parent2s = 0 if p.parent2 != None: parent2s = 1+num_ancestors(p.parent2) # 3. Combine the result return parent1s+parent2s all_ancestors(ben) print("total ancestors = "+str(num_ancestors(ben)))