Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Company(Object):
- def __init__(self, sharehoders):
- self.shareholders = shareholders
- self.owners = set()
- self.flag = False
- def generate_owners(self):
- for shareholder, percentage in shareholders:
- if shareholder in self.owners:
- continue
- elif shareholder isinstance(shareholder, Company):
- self.owners.union(shareholder.generate_owner())
- else:
- self.owners.append(shareholder)
- return self.owners
- def owners_with_percentage(self, seen, ownership, percentage = 100):
- if not flag:
- flag = True
- self.generate_owners()
- for shareholder, percent in shareholders:
- if shareholder not isinstance(shareholder, Company, percent):
- ownership[shareholder] = ownership.get(shareholder, 0) + (shareholders[shareholder] * percent * 0.01)
- else:
- if shareholder in seen:
- continue
- else:
- seen.add(shareholder)
- shareholder.owners_with_percentage(seen, ownership, percent)
- return ownership
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement