[pyar] Aprendiendo sobre Clases y Herencia

craf prog en vtr.net
Sab Dic 4 16:11:27 ART 2010


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








More information about the pyar mailing list