class Player(Entity): def __init__(self, eid=None, name=None, pos=None, data=None): self.id = eid self.name = name if not isinstance(pos, Location): self.pos = Location(data=pos) else: self.pos = pos self.char = "x" if data: self.load(data) def dump(self): return { 'id':self.id, 'name':self.name, 'pos':self.pos.dump(), 'char':self.char } def load(self, obj): if obj.get('pos'): obj['pos'] = Location(data=obj['pos']) self.__dict__.update(obj)