import pickle class Animal(object): """ Classe que representa um animal. """ attrs = ['nome', 'especie', 'genero', 'peso', 'altura', 'idade'] def __init__(self, **args): # Crie os atributos no objeto a partir da lista # Os atributos tem None como valor default for attr in self.attrs: setattr(self, attr, args.get(attr, None)) def __repr__(self): dic_attrs = {} for attr in self.attrs: dic_attrs[attr] = getattr(self, attr) return 'Animal: %s' % str(dic_attrs) def salvar(self): """ Salva os dados do animal. """ dic_attrs = {} for attr in self.attrs: dic_attrs[attr] = getattr(self, attr) pickle.dump(dic_attrs, file('a.pkl', 'w')) def desfazer(self): """ Restaura os últimos dados salvos. """ attrs = pickle.load(file('a.pkl')) for attr in attrs: setattr(self, attr, attrs[attr]) # Teste gato = Animal(nome='Tinker', especie='Gato', genero='m', peso=6, altura=0.30, idade=4) gato.salvar() gato.idade = 5 print gato gato.desfazer() print gato # O módulo StringIO implementa uma classe # de strings que se comportam como arquivos import StringIO def table_format(dataset): """ Classe que representa um animal. """ out = StringIO.StringIO() out.write('
%s | ' % col) out.write('