Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # encoding: utf-8
- from __future__ import print_function
- class Person():
- def __init__(self, name):
- self.name = name
- def get_relationships(self):
- # SELECT relation, p2 from Relationships where p1.name = self.name
- return [r for r in all_relationships if r.p1.name == self.name]
- all_relationships = []
- class Relationship():
- # if relation is not defined, use a default value
- def __init__(self, p1, p2, relation = 'parente'):
- self.p1 = p1
- self.p2 = p2
- self.relation = relation
- def __repr__(self):
- return '{} e {} de {}'.format(self.p1.name, self.relation, self.p2.name)
- def get_opposite(r):
- # all possible values should be pre-defined
- def opposite_of(relation):
- if relation == 'pai':
- return 'filho'
- if relation == 'filho':
- return 'pai'
- # default case
- return 'parente'
- return Relationship(r.p2, r.p1, opposite_of(r.relation))
- def save_relationship(relationship):
- # SAVE Relationship and its opposite to Relationships table
- all_relationships.append(relationship)
- all_relationships.append(get_opposite(relationship))
- joao = Person('joao')
- maria = Person('maria')
- jose = Person('jose')
- save_relationship(Relationship(joao, maria, 'pai'))
- save_relationship(Relationship(joao, jose))
- print('parentes de joao')
- for r in joao.get_relationships():
- print('\t',r)
- print()
- print('todos os parentescos')
- for r in all_relationships:
- print('\t',r)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement