Python - Herencia en Python, una pequeña duda

 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

Herencia en Python, una pequeña duda

Publicado por Yidu (19 intervenciones) el 04/01/2015 18:53:36
Hola,

Estoy dando los primeros pasos en la herencia de clases con Python.

Creo este código:

1
2
3
4
5
6
7
8
9
class animal:
    def comer(self, comida):
        print('ha comido', comida)
 
class perro(animal):
    pass
 
class gato(animal):
    pass

Si instanciamos:

1
2
3
4
5
dalmata = perro()
dalmata.comer('hueso')
 
siames = gato()
siames.comer('pescado')

Da la salida:

1
2
ha comido hueso
ha comido pescado

Como se construye la clase Animal (Padre) para que nos de la salida con el nombre de la instancia de esta manera:

1
2
dalmata ha comido hueso
siames ha comido pescado

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Herencia en Python, una pequeña duda

Publicado por Javier (3 intervenciones) el 05/01/2015 16:32:31
La formá más facil es sobreescribir el método la crear la clase hijo. algo como esto:

1
2
3
4
5
class perro(animal):
    self.animal = animal
 
    def comer(self, comida):
        print self.animal + ' ha comido ' + comida

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

Herencia en Python, una pequeña duda

Publicado por Yidu (19 intervenciones) el 06/01/2015 11:37:44
Pero entonces, no tiene mucho sentido la herencia en este caso ¿No? Me refiero a tener que crear los dos métodos en la clase padre y luego, en la clase hija.

La idea es crear el método en la clase padre. Y luego, que las demás clases hereden de esa superclase.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar