Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/06/2010, 21:11
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Instanciar objetos y guardarlos en un vector

Aqui un ejemplo mas bonito y simplificado:
Código Python:
Ver original
  1. class Book(object):
  2.     def __init__(self, idbook, title, author, edition,  editorial):
  3.         self.idbook = idbook
  4.         self.title = title
  5.         self.author = author
  6.         self.edition = edition
  7.         self.editorial = editorial
  8.  
  9.     def __str__(self):
  10.         return "%s %s %s %s %s" % (self.idbook, self.title, self.author, self.edition, self.editorial)
  11.  
  12.     def __getattribute__(self, attr):
  13.         return object.__getattribute__(self, attr)
  14.  
  15. class BookManager:
  16.     def __init__(self):
  17.         self.book_list = []
  18.  
  19.     def append(self, idbook, title, author, edition,  editorial):
  20.         book = Book(idbook, title, author, edition,  editorial)
  21.         self.book_list.append(book)
  22.  
  23.     def search(self, key, by="idbook"):
  24.         for index, book in enumerate(self.book_list):
  25.             if book.__getattribute__(by) == key:
  26.                 return index
  27.  
  28.     def remove(self, key, by="idbook"):
  29.         index = self.search(key)
  30.         if index != None:
  31.             self.book_list.pop(index)
  32.             return index
  33.  
  34.     def __str__(self):
  35.         s = ""
  36.         for book in self.book_list:
  37.             s += str(book) + '\n'
  38.         return s
  39.  
  40. #Ejemplo:
  41. bm = BookManager()
  42.  
  43. bm.append("001", "Title1", "Author1", "Edition1", "Editorial1")
  44. bm.append("002", "Title2", "Author2", "Edition2", "Editorial2")
  45. bm.append("003", "Title3", "Author3", "Edition3", "Editorial3")
  46. bm.append("004", "Title4", "Author4", "Edition4", "Editorial4")
  47. bm.append("005", "Title5", "Author5", "Edition5", "Editorial5")
  48.  
  49. bm.search("000")
  50. bm.search("001")
  51.  
  52. bm.remove("004")
  53. bm.remove("004")
  54.  
  55. print bm