#!/usr/bin/python # -*- coding: utf-8 -*- """ Ejemplo de Clase de Altas, Bajas y Cambios :author: ACL :version: 0.1 """ import shelve class Producto: """Definicion de la clase producto""" def __init__(self): """Constructor de la clase producto""" self.__id = None self.__nomb = None self.__precio = None self.__cant = None def inicializa(self, id, nomb, precio, cant): """Inicializa la clase producto""" self.__id = id self.__nomb = nomb self.__precio = precio self.__cant = cant def captura(self): """Captura la clase producto""" self.__id = input("Identificador: ") self.__nomb = input("Nombre: ") self.__precio = float(input("Precio: ")) self.__cant = int(input("Cantidad: ")) def identificador(self): """Retorna el identificador producto""" return self.__id # Acceso al valor self.__id mediante la variable id id = property(identificador) def visualizar(self): """Visualiza la clase producto""" print(self) def __repr__(self): """Visualiza la clase producto""" a = "\nIdentificador: {0}\n".format(self.__id) a += "Nombre: {0}\n".format(self.__nomb) a += "Precio: {:,.2f}\n".format(self.__precio) a += "Cantidad: {0}\n".format(self.__cant) return a class Televisor(Producto): """Definicion de la clase Televisor""" def __init__(self): """Constructor de la clase Televisor""" Producto.__init__(self) self.__pulg = None self.__resol = None def inicializa(self, id, nomb, precio, cant, pulg, resol): """Inicializa la clase Televisor""" Producto.inicializa(self, id, nomb, precio, cant) self.__pulg = pulg self.__resol = resol def captura(self): """Captura la clase Televisor""" Producto.captura(self) self.__pulg = int(input("Pulgadas: ")) self.__resol = input("Resolucion: ") def __repr__(self): """Visualiza la clase Televisor""" a = Producto.__repr__(self) a += "Pulgadas: {0}\n".format(self.__pulg) a += "Resolucion: {0}\n".format(self.__resol) return a class Reproductor(Producto): """Definicion de la clase Reproductor""" def __init__(self): """Constructor de la clase Reproductor""" Producto.__init__(self) self.__bocinas = None def inicializa(self, id, nomb, precio, cant, bocinas): """Inicializa la clase Reproductor""" Producto.inicializa(self, id, nomb, precio, cant) self.__bocinas = bocinas def captura(self): """Captura la clase Reproductor""" Producto.captura(self) self.__bocinas = int(input("Bocinas: ")) def __repr__(self): """Visualiza la clase Reproductor""" a = Producto.__repr__(self) a += "Bocinas: {0}\n".format(self.__bocinas) return a class Prueba: """Clase de prueba""" def __init__(self): """Constructor de la clase""" self.__lista = [] # Lista para los objetos creados self.__archivo = "ArchivoBD" self.__msw = 1 self.__db = shelve.open(self.__archivo) for k in self.__db: self.__lista.append(self.__db[k]) # print("constructor") def __del__(self): """Destructor""" # print("Destructor") def menu(self): """menu""" sw = { "1": self.altas, "2": self.bajas, "3": self.cambios, "4": self.visualiza, "9": self.salir, } while self.__msw: # os.system('clear') # NOTA para windows tienes que cambiar clear por cls print("Selecciona una opcion") print("\t1 - Altas") print("\t2 - Bajas") print("\t3 - Cambios") print("\t4 - Visualizar") print("\t9 - salir") # solicituamos una opcion al usuario opcionMenu = input("inserta un numero >> ") sw.get(opcionMenu, self.otro)() def altas(self): """Altas""" print("") opcion = input("Deseas dar de alta un Televisor (1) o un reproductor(2)? ") if opcion == "1": a = Televisor() a.captura() for i in self.__lista: if a.id == i.id: print("Error identificador existe") break else: self.__lista.append(a) elif opcion == "2": b = Reproductor() b.captura() for i in self.__lista: if b.id == i.id: print("Error identificador existe") break else: self.__lista.append(b) def bajas(self): """Bajas""" print("") id = input("Identificador a borrar?") for i in self.__lista: if id == i.id: print("identificador borrado") print(i.identificador()) self.__lista.remove(i) def cambios(self): """Cambios""" print("") id = input("Identificador a cambiar?") for i in self.__lista: if id == i.id: i.captura() else: print("identificador no encontrado") def visualiza(self): """Visualizar""" # print("Visualiza la lista de articulos desde la lista") # print(self.__lista) # Visualiza el objeto lista print("Visualiza la lista de articulos") for i in self.__lista: # i.visualizar() # i.visualizaAtributosJeraquia() print(i) def salir(self): """Salir""" self.__msw = 0 for reg in self.__lista: self.__db[reg.id] = reg self.__db.close() def otro(self): """En caso de no ser alguna de las opciones definidas""" print("") input( "No has pulsado ninguna opcion correcta...\npulsa una tecla para continuar" ) """ Prueba de las clases """ if __name__ == "__main__": a = Prueba() a.menu()