Buenos dias, tengo un problema. Genere una clase nueva llamada “Puertas” la cual tiene como parametro inicial el numero de puertas y desp...

Pregunta de la clase:
Decomposición
Alexis Leonel Altamirano Barrera

Alexis Leonel Altamirano Barrera

Pregunta
studenthace 4 años

Buenos dias, tengo un problema. Genere una clase nueva llamada “Puertas” la cual tiene como parametro inicial el numero de puertas y despues tiene un metodo llamado “apertura”, que imprimira una cosa u otra dependiendo el numero de puertas que haya. Para correr el programa cree un objeto automovil, un “Model_S” que tiene en su metodo constructor la variable ‘puertas’ que es una instancia de la clase ‘Puertas’. Pero cuando quiero llamar al metodo de puertas desde la instancia “Model_S” no ejecuta nada. Que puedo estar haciendo mal?

Adjunto el codigo:

class Automovil: def __init__(self, modelo, marca, color): self.modelo = modelo self.marca = marca self.color = color self._estado = 'en_reposo' self._motor = Motor(cilindros=4) #Se genera una instancia de la clase motor self.puertas = Puertas(numero_puertas=6) def acelerar(self, tipo='despacio'): if tipo == 'rapido': self._motor.inyecta_gasolina(10) else: self._motor.inyecta_gasolina(3) self._estado = 'en_movimiento' #Inicializamos una variable PRIVADA, dado que el usuario no necesita acceder #a esta informacion y tampoco modificarla, es decir el estado incial del vehiculo esta en #en reposo. #Comenzaremos a modelar el motor a traves de otra clase: class Motor: def __init__(self, cilindros, tipo='gasolina'): self.cilindros = cilindros self.tipo = tipo self.temperature = 0 def inyecta_gasolina(self, cantidad): pass class Puertas: def __init__(self, numero_puertas, material='aluminio'): self.numero_puertas = numero_puertas self.material = material def apertura(self, numero_puertas): if numero_puertas == 5: print('Su vehiculo tiene 5 puertas elevadizas') else: print('Puertas standar') if __name__ == '__main__': print('Hola') Model_S = Automovil('Model_S', 'Tesla', 'Rojo') print(Model_S.marca) print(Model_S.modelo) print(Model_S._estado) print(Model_S._motor.temperature) print(Model_S.puertas.numero_puertas) Model_S.puertas.apertura ```
3 respuestas
para escribir tu comentario
    Miguel Torres

    Miguel Torres

    studenthace 4 años

    Genial que lo resolvieras, Alexis. :D 💪

    Alexis Leonel Altamirano Barrera

    Alexis Leonel Altamirano Barrera

    studenthace 4 años

    Hola Miguel, estabas en lo correcto!. Me estaba faltando pasarle el parametro a la funcion. Le pase como parametro el numero de puertas del objeto Model_ S y funciono! Muchas gracias!!!

    Miguel Torres

    Miguel Torres

    studenthace 4 años

    Hola, Alexis. :)

    Recuerda que

    apertura
    es un método de tu objeto. Necesita paréntesis al final para ejecutarse.

    Model_S.puertas.apertura()

    Prueba con eso y nos dices si funciona. 🐍💪

Curso de POO y Algoritmos con Python

Curso de POO y Algoritmos con Python

Comprende la eficiencia algorítmica con Python. Analiza complejidad temporal y espacial, visualiza resultados y resuelve problemas de optimización. Ideal para desarrollar habilidades esenciales en el análisis de algoritmos.

Curso de POO y Algoritmos con Python
Curso de POO y Algoritmos con Python

Curso de POO y Algoritmos con Python

Comprende la eficiencia algorítmica con Python. Analiza complejidad temporal y espacial, visualiza resultados y resuelve problemas de optimización. Ideal para desarrollar habilidades esenciales en el análisis de algoritmos.