Python - PROBLEMA POO

 
Vista:
Imágen de perfil de Wiliam
Val: 23
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

PROBLEMA POO

Publicado por Wiliam (11 intervenciones) el 16/07/2019 18:22:06
Anteriormente pedi una "descripicion" de la POO, y algunas de sus definiciones y siguiendo con un curso me sale un error que no entiendo muy bien, ya que al ejecutar las ultimas lineas me dice que requiere del argumento opcional "arrancamos" y aun comentando la linea o cambiandola me siguen apareciendo errores.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Coche(): #Creo una clase
    def __init__ (self):
            self.__largo_chasis=250 #Creo una propiedad comun para todos los objetos (largo) #? PROPIEDAD
            self.__ancho_chasis=120 #Creo una propiedad comun para todos los objetos (ancho) #? PROPIEDAD
            self.__ruedas=4 #Creo una propiedad comun para todos los objetos (nº ruedas) #? PROPIEDAD
            self.__enmarcha=False #En principio todos los coches de esta clase van a estar parados #? PROPIEDAD
    def arrancar(self,arrancamos): #EJ:Coche.arrancar, self hace referencia al objeto de la clase #* COMPORTAMIENTO 
        self.__enmarcha=arrancamos
        if (self.__enmarcha):#Cambia enmarcha=False a True con la variable self
            chequeo=self.chequeo_interno()
        if(self.__enmarcha and chequeo):
            return "El coche esta en marcha"
        elif(self.__enmarcha and chequeo==False):
            return "Algo ha ido mal en el chequeo, por favor comprueba tu coche"
        else:
            return "El coche esta parado"
    def estado(self): #Creo un objeto del estado #* COMPORTAMIENTO
        print("El coche tiene", self.__ruedas, "ruedas. Un ancho de ", self.__ancho_chasis," y un largo de ", self.__largo_chasis)
    def chequeo_interno(self):
        print("Realizando chequeo interno...")
        self.gasolina="Ok"
        self.aceite="Ok"
        self.puertas="Cerradas"
        if(self.gasolina=="Ok" and self.aceite=="Ok" and self.puertas=="Cerradas"):
            return True
        else:
            return False
miCoche=Coche() #Creo el primer objeto de la clase (Coche)
print(miCoche.arrancar(True))
miCoche.estado() #self.enmarcha=True == miCoche.enmarcha=True, self hace referencia al objeto
print(miCoche.estado()) #Si comentamos la linea anterior el programa nos dira que el coche esta parado
print("--------------------------------------Ahora el 2º coche------------------------------------------------")
miCoche_2=Coche
print(miCoche_2.arrancar(False))
miCoche_2.estado()
print(miCoche_2.chequeo_interno())
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: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

PROBLEMA POO

Publicado por tincopasan (1085 intervenciones) el 16/07/2019 19:47:35
basicamente al crear la segunda instancia te falta completar el llamado a la clase.
1
miCoche_2=Coche

si te fijas falta " () " o sea:
1
miCoche_2=Coche()

debes prestar más atención cuando copias código.
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
Imágen de perfil de Wiliam
Val: 23
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

PROBLEMA POO

Publicado por Wiliam (11 intervenciones) el 16/07/2019 20:21:22
Gracias, mira que me he pasado horas buscando y diciendo que es lo que falla para que sea algo tan sencillo
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
Imágen de perfil de Paolo
Val: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

PROBLEMA POO

Publicado por Paolo (5 intervenciones) el 16/07/2019 19:50:28
En la línea 33:
1
miCoche_2=Coche
la variable <miCoche_2> hace referencia a la clase en sí, y no a una instancia de la clase.

Solución:
1
miCoche_2=Coche()

En resumen, se te olvidaron los paréntesis.
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