You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
951 B

class Person(object):
_people = [
{
'name': {
'first': 'Hammy',
'last': 'Spammy',
},
'age': 42,
'id': 1,
},
{
'name': {
'first': 'Sampers',
'last': 'Dancer',
},
'age': 38,
'id': 2
},
]
def __init__(self):
self._index()
def _index(self):
self._people_by_id = dict(((p['id'], p) for p in self._people))
def getall(self):
return self._people
def get(self, person_id):
return self._people_by_id[person_id]
def add(self, person):
if None in (person.get('name'), person.get('age')):
raise ValueError('Missing required fields!: {}'.format(person))
person['id'] = len(self._people) + 1
self._people.append(person)
self._index()
return person['id']