Python - problema con herencia de clases en python

 
Vista:

problema con herencia de clases en python

Publicado por python123 (4 intervenciones) el 04/01/2019 22:57:16
Quisiera que se imprimiese "Ha nacido un animal" y luego, "Ha nacido un gato", teniendo constructores en ambas clases pero lanza un error.

1
2
3
4
5
6
7
8
9
10
class Animal():
    def __init__(self,nombre):
        self.nombre = nombre
        print ("Ha nacido un animal")
 
class Gato(Animal):
    def __init__(self):
        print ("Ha nacido un gato")
 
gardfield = Gato("Gardfield")
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
Val: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

problema con herencia de clases en python

Publicado por Yamil Bracho (5 intervenciones) el 04/01/2019 23:13:58
le falta el parametro "nombre" en el constructor de la clase Gato. Es decir
1
2
3
class Gato(Animal):
    def __init__(self, nombre):
        print ("Ha nacido un gato")
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

problema con herencia de clases en python

Publicado por python123 (4 intervenciones) el 04/01/2019 23:35:22
En la correccion que muestras imprime "Se ha creado un gato" pero no se imprime "Se ha creado un animal"
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: 2.137
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

problema con herencia de clases en python

Publicado por tincopasan (588 intervenciones) el 05/01/2019 03:45:08
¿ y si además del nombre heredas una propiedad?:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#-*- coding: utf -8 -*-
class Animal:
    def __init__(self,nombre):
        self.nombre = nombre
 
    def nacido(self):
        print ("Ha nacido un animal")
 
class Gato(Animal):
    def __init__(self,nombre):
        self.nacido()
        print ("Ha nacido un gato")
 
gardfield = Gato("Garfield")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problema con herencia de clases en python

Publicado por python123 (4 intervenciones) el 06/01/2019 00:22:43
las consignas fueron estas:

1-Escribe el código que defina una clase llamada Animal:
Añade un atributo para el nombre del animal.
Añade un constructor para la clase Animal que imprima ``Ha nacido un animal.''

2-Una clase llamada Gato:
Hacer Animal la clase padre.
Añade un constructor para Gato que imprima ``Ha nacido un gato.'' y que llame al constructor padre.
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: 2.137
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

problema con herencia de clases en python

Publicado por tincopasan (588 intervenciones) el 06/01/2019 18:57:23
no me gusta hacer tareas, hoy haré una excepción:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#-*- coding: utf -8 -*-
 
class Animal(object):
    def __init__(self,nombre):
        self.nombre = nombre
        print ("Ha nacido un animal")
 
class Gato(Animal):
    def __init__(self,nombre):
        self.nombre=nombre
        Animal.__init__(self, nombre)  #y que llame al constructor padre.
        super(Gato,self).__init__(nombre)  #otra forma de lo mismo
        print ("Ha nacido un gato")
 
gardfield = Gato("Garfield")

cuando pongas tareas, por lo menos pon el planteo desde el inicio, los usuarios no adivinan y seguro alguién te ayuda(no es mi caso),salvo que como ahora pongas lo que llevas intentado.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

problema con herencia de clases en python

Publicado por python123 (4 intervenciones) el 07/01/2019 12:48:53
Muchas gracias, no sabia lo de las lineas 11 y 12
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