class Persona: def __init__(self, nombre, apellidos, edad): """Constructor de la clase""" self.Nombre = nombre self.Apellidos = apellidos self.Edad = edad def __str__(self): return ( "Nombre: " + self.nombre() + " " + self.apellidos() + " edad: " + str(self.edad()) ) def visualiza(self): """Visualiza su valor""" print(self) def nombre(self): """retorna el nombre""" return self.Nombre def apellidos(self): """Retorna los apellidos""" return self.Apellidos def edad(self): """Retorna la edad""" return self.Edad from abc import ABC, abstractmethod class Empleado(ABC): def __init__(self): """Constructor de la clase""" self.Compania = "Mi CompaƱia" def visualizaSueldo(self): """Visualiza el sueldo del empleado""" print("sueldo: ", self.sueldo()) @abstractmethod def sueldo(self): """Metodo abstracto para definir el sueldo del empleado""" pass class Medico(Persona, Empleado): def __init__( self, nombre, apellidos, edad, especialidad, cedula, costoConsulta, numeroConsultas, ): """Constructor de la clase""" Persona.__init__(self, nombre, apellidos, edad) self.Especialidad = especialidad self.Cedula = cedula self.CostoConsulta = costoConsulta self.NumeroConsultas = numeroConsultas def __str__(self): return ( "Nombre del medico: " + self.nombre() + " " + self.apellidos() + " especialidad: " + self.especialidad() + " cedula: " + self.cedula() ) def visualiza(self): """Visualiza su valor""" print(self) def especialidad(self): """retorna el nombre""" return self.Especialidad def cedula(self): """Retorna los apellidos""" return self.Cedula def sueldo(self): """Cualcual el sueldo""" return self.CostoConsulta * self.NumeroConsultas """ Prueba de las clases """ if __name__ == "__main__": import pickle import os a = [] xb = Medico("Juan", "Ferrer", 50, "cirujano", "832098092", 10, 1000) a.append(xb) for k in a: k.visualiza() k.visualizaSueldo() # Grabar el archivo con los objetos en la lista print("Grabando ...") with open("sal.dat", "wb") as fp: pickle.dump(a, fp) # Leer el archivo cargando los objetos a la lista print("Leyendo ...") if os.path.exists("sal.dat"): with open("sal.dat", "rb") as fp: lista = pickle.load(fp) for k in lista: k.visualiza() k.visualizaSueldo() else: print("Error en la lectura archivo no existe ...")