Un problema de herencia múltiple.

José Miguel Sánchez Alés aussiliar en online.fr
Mar Ene 15 15:54:10 CET 2008


El Tue, 15 de Jan de 2008, a las 01:37:39PM +0100, Chema Cortes dijo:

> [...]
> Lo del MRO (Method Resolution Order) te lo explica aquí:
> <http://cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#id837781>

Gracias. Les echaré un vistazo. Esta mañana leí un poco sobre el asunto y
creí entender cómo resolver la situación:

#v+
class A(object):
	def __init__(self):
		self.naderia='no hace nada de particular.'
	
class B1(A):
	def __init__(self):
		self.mensaje='Es heredera de %s...' % B1.__name__
		super(B1,self).__init__()

	def declaracion(self):
		print self.mensaje
		print 'aunque, en realidad, ', self.naderia
	
class B2(A):
	def __init__(self):
		self.mensaje='Es heredera de %s...' % B2.__name__
		super(B1,self).__init__()

	def declaracion(self):
		print self.mensaje
		print 'Aunque, en realidad, ', self.naderia

class C(A):
	def __init__(self):
		super(C,self).__init__()
	def declaracion(self):
		print 'La clase %s, con la interlocución de %s, hace saber que:' \
		       %  (self.__class__.__name__,C.__name__)
		super(C,self).declaracion()

class D1(C,B1):
	pass

class D2(C,B2):
	pass
#v-

Algo así, ¿no?

Muchísimas gracias, Chema, por la pequeña lección. Acabo de descubrir algo nuevo
y realmente interesantísimo.

-- 
-- Hoy he reñido a un hostelero.
-- ¿Por qué? ¿Cuándo? ¿Dónde? ¿Cómo?
-- Porque cuando donde como
   sirven mal, me desespero
                  --- Tomás de Iriarte ---
   Si     Dióxido de Silicio |        Debian GNU/Linux 
  /  \         (SiO2)        |    José Miguel Sánchez Alés
 O    O   Mineral de Cuarzo  |  aussiliar en online.fr | URL #257033
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es