Ayuda con la herencia de clases y el metodo __init__
Gabriel Genellina
gagsl-py en yahoo.com.ar
Sab Feb 17 06:25:13 CET 2007
En Fri, 16 Feb 2007 09:40:31 -0300, Javier González
<jgonzalez en grupopitaco.com> escribió:
> ante de nada, decir que soy novato en esto de python asi que
> disculparme si pregunto una tonteria, tengo el siguiente problema ,
> partiendo de dos clases con sus respectivos metodos __init__ creo una
> tercera que hereda de las dos primeras todos sus metodos, al cuestion es
> que necesito que cuando inicializo esta tercera clase se tienen que
> ejecutan los metodos init de cada clase. y no se como hacerlo
Hay que invocarlos explicitamente, usando: clase_base.__init__(self, los,
argumentos, que, correspondan)
Tu ejemplo es muy extraño, porque las clases Z e Y definen los *mismos*
atributos asi que, no se sabria cuales valores usar.
Lo voy a cambiar un poco para que sea mas realista:
class Z:
def __init__(self, a, b):
self.a = a
self.b = b
class Y:
def __init__(self, c, d=None):
if d is None: d=20
self.c = c
self.d = d
class X(Y,Z):
def __init__(self, a, b, c, d=None):
Z.__init__(self, a, b)
Y.__init__(self, c, d)
py> m1 = X(1, 3, 5, 7)
py> print m1.a, m1.b, m1.c, m1.d
1 3 5 7
py> m2 = X(11, 12, 13)
py> print m2.a, m2.b, m2.c, m2.d
11 12 13 20
--
Gabriel Genellina
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es