[pyar] Aprendiendo sobre Clases y Herencia
Facundo Batista
facundobatista en gmail.com
Sab Dic 4 16:31:05 ART 2010
2010/12/4 craf <prog en vtr.net>:
> 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".
Ojo que estás haciendo que Bus herede de Vehiculo pero no estás
llamando al __init__ de Vehiculo en Bus...
> 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)
No.
Si hacés eso con el código que pasaste arriba, funciona.
>>> pullman = Bus(110)
>>> pullman.Pasajeros()
Van 110 Pasajeros
O estás haciendo otra cosa, o tenés otro código y no el que mostraste arriba...
Slds.
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
More information about the pyar
mailing list