[pyar] [Fwd: Re: Aprendiendo sobre Clases y Herencia]
craf
prog en vtr.net
Sab Dic 4 16:45:36 ART 2010
--------- Mensaje reenviado --------
> De: QliX=D! [aka EHB] <qlixed en gmail.com>
> Reply-to: Python Argentina <pyar en python.org.ar>
> Para: Python Argentina <pyar en python.org.ar>
> Asunto: Re: [pyar] Aprendiendo sobre Clases y Herencia
> Fecha: Sat, 4 Dec 2010 16:25:19 -0300
>
> __init__ de bus deberia ser:
>
> def __init___(self, gasolina, pasajeros)
> super(Bus, self).__init__(gasolina)
> self.pasajeros=pasajeros
>
>
> fijate que gasolina en Vehiculo no es opcional, por lo tanto necesitas
> pasarla como parametro en las clases hijas.
> A menos que la hagas opcional o con algun valor por defecto y luego en
> Bus:
>
> def __init___(self, gasolina, pasajeros)
> super(Bus, self).__init__(100) # 100 litros!, tanque lleno!.
> self.pasajeros=pasajeros
>
>
> Saludos.
> QliXed [aka EHB]
>
> 2010/12/4 craf <prog en vtr.net>
> Hola a todos.
>
> Estoy comenzando a aprender sobre la programación orientada a
> objetos
> con Python y me he quedado pegado en un punto en el cual no he
> logrado
> encontrar una solución.
>
> Como punto de partida, mi código es el siguiente:
>
> clases.py
>
> class Vehiculo:
> def __init__(self,gasolina):
> self.gasolina = gasolina
>
> def conducir(self):
> self.gasolina -= 1
> print('Quedan',self.gasolina,'de gasolina')
>
> class Bus(Vehiculo):
> def __init__(self,numero):
> self.numero = numero
>
> def Pasajeros(self):
> print('Van',self.numero,'Pasajeros')
>
> Como se puede ver, he creado una clase Padre llamada
> "Vehículo" con una
> propiedad "gasolina" y un método "conducir. Además he creado
> también una
> clase hija llamada "Bus" que hereda de la clase "Vehículo", y
> que tiene
> una propiedad "pasajeros" y un método llamado "Pasajeros".
>
> Pregunta: Se por lo que he leído que la clase hija hereda los
> métodos y
> atributos de la clase padre.
> Ahora si quisiera crear un objeto "pullman" de la clase "Bus"
> el código
> sería:
>
> main.py
>
> pullman = Bus(110)
>
> Y para mostrar el numero de pasajeros, llamaría al método
> Pasajeros.
>
> pullman.Pasajeros()
>
> Esto en teoría debería funcionar, pero cuando ejecuto el
> modulo main.py,
> este me arroja el siguiente error:
>
> "Traceback(most recent call last).
> File "main.py", line 3, in <module>
> pullman = Bus(110)
> TypeError: __init__() takes exactly 3 positional arguments (2
> given)
>
> Según esto dice que el objeto creado tiene que tener 3
> argumentos y que
> yo le estoy dando solo 2.
> Se que el el atributo self, es enviado "automagicamente"
> cuando se crea
> el objeto, pero de ahí, ni idea.
>
> Cualquier luz sobre esta oscuridad, lo agradezco ;=).
>
> Saludos.
>
> Cristian
>
>
Ok, voy a probar todo lo que me indicas.
Muchas gracias .
Saludos.
Craf
More information about the pyar
mailing list