Continuando con Python , ahora es el turno de explicar herencia.

Para los que ya están relacionados con herencia en C++ u otro lenguaje se darán cuenta que el asunto es muy similar y algo más simple 🙂

A modo de ejemplo usare algo que ya tengo programado el cual se trata de un hotel el cual posee diferentes tipos de habitaciones , este hotel tiene un Penthouse , habitaciones King, Dobles y Simples, cada una de estas posee un precio, un numero y es estado dependiendo si esta ocupada o no.

para hacernos una idea gráfica de como sera la herencia , pueden verlo en el siguiente dibujo.

 

 

 

 

 

Ahora veamos como se ve el código.

 

 

#!/usr/bin/python

class habitacion:
	def __init__(self,numero, estado, precio):
		self.numero = numero
		self.estado = estado
		self.precio = precio
	def tell(self):
		print 'Numero = "%i" , Estado = "%i" , Precio = "%i"  ' %(self.numero, self.estado, self.precio),
	def getNumero(self):
		return self.numero
	def getEstado(self):
		return self.estado
	def getPrecio(self):
		return self.precio
	def setEstado(self, estado):
		self.estado=estado

class penthouse(habitacion):
	def __init__(self,numero, estado, precio):
		habitacion.__init__(self,numero, estado,precio)
		self.tipo="Penthause"
	def getTipo(self):
		return self.tipo
        def getNumero(self):
                return self.numero
        def getEstado(self):
                return self.estado
        def getPrecio(self):
                return self.precio
        def setEstado(self, estado):
                self.estado=estado
	def tell(self):
		print 'Tipo = "%s",Numero = "%i" , Estado = "%i" , Precio = "%i"  ' %(self.tipo, self.numero, self.estado, self.precio),

class h_king(habitacion):
	def __init__(self, numero, estado, precio):
		habitacion.__init__(self,numero, estado,precio)
		self.tipo="King"
        def getTipo(self):
                return self.tipo
        def getNumero(self):
                return self.numero
        def getEstado(self):
                return self.estado
        def getPrecio(self):
                return self.precio
        def setEstado(self, estado):
                self.estado=estado
	def tell(self):
		print 'Tipo = "%s",Numero = "%i" , Estado = "%i" , Precio = "%i"  ' %(self.tipo, self.numero, self.estado, self.precio),

class h_dobles(habitacion):
        def __init__(self, numero, estado, precio):
                habitacion.__init__(self,numero, estado,precio)
                self.tipo="Doble"
        def getTipo(self):
                return self.tipo
        def getNumero(self):
                return self.numero
        def getEstado(self):
                return self.estado
        def getPrecio(self):
                return self.precio
        def setEstado(self, estado):
                self.estado=estado
        def tell(self):
                print 'Tipo = "%s",Numero = "%i" , Estado = "%i" , Precio = "%i"  ' %(self.tipo, self.numero, self.estado, self.precio),

class h_simple(habitacion):
        def __init__(self, numero, estado, precio):
                habitacion.__init__(self,numero, estado,precio)
                self.tipo="Simple"
r
        def getTipo(self):
                return self.tipo
        def getNumero(self):
                return self.numero
        def getEstado(self):
                return self.estado
        def getPrecio(self):
                return self.precio
        def setEstado(self, estado):
                self.estado=estado
        def tell(self):
                print 'Tipo = "%s",Numero = "%i" , Estado = "%i" , Precio = "%i"  ' %(self.tipo, self.numero, self.estado, self.precio),

 

Bueno las funciones “get” retornan un valor y las “set” , son para insertar un valor

 

 

ahora para crear los objetos en este caso las habitaciones solo hay que realizar

 

 

p = penthouse(1,0,150000)
k = king(2,0,85000)
d = doble(3,0,35000)
s = simple(4,1,25000)

 

 

ahora si queremos algún atributo por ejemplo el precio de una habitación doble

 

 

precio_doble = d.getPrecio()

 

 

y si queremos imprimir algo de alguna habitación por ejemplo de la habitación simple

 

 

s.tell()

 

 

o si queremos imprimir toda la información de las habitaciones

 

 

habitaciones = [p, k, d, s]
for habitaciones in habitaciones:
        habitaciones.tell()

 

Saludos!