Estoy aprendiendo python y estoy practicando la herencia en las clases no puedo lograr hacer que el codigo cuando la clase motoElecrica usa el metodo haciencdoWilly sin haber usado el metodo “arrancar” me muestre un mensaje de que primero se debe arrancar este es mi codigo,
class Vehiculos(): def __init__(self, marca, modelo): self.marca=marca self.modelo=modelo self.__enmarcha=False self.acelera=False self.frena=False def arrancar(self, arrancamos): self.__enmarcha=arrancamos if(self.__enmarcha): chequeo=self.__chequeo_interno() else: return False if(self.__enmarcha and chequeo): return True and print("El vehiculo está en marcha") elif (self.__enmarcha and chequeo==False): return False and print("El chequeo no fue exitoso. No se puede arrancar") else: return False and print("El vehiculo esta parado") def __chequeo_interno(self): print("Inicializando de chequeo interno") self.gasolina="ok" self.aceite="ok" if (self.gasolina=="ok" and self.aceite=="ok"): return True else: return False def acelerando(self, acelerando): self.acelera=acelerando frenamos=self.frena if (self.__enmarcha and self.acelera and frenamos==False): return print("El vehiculo está acelerando") elif (self.__enmarcha==False and self.acelera and frenamos==False): return print("Arrancar el vehiculo primero por favor") elif (self.acelera and frenamos): return print("No es posible acelerar y frenar al mismo tiempo") def frenando(self, frenando): self.frena=frenando aceleramos=self.acelera if(self.__enmarcha and self.frena and aceleramos==False): return print("El vehiculo esta frenando") elif (self.__enmarcha==False and self.frena and aceleramos==False): return print("Arrancar el vehiculo primero por favor") elif (self.frena and aceleramos): return print("No es posible acelerar y frenar al mismo tiempo") def estado(self): print("Marca: ", self.marca, "\nModelo: ", self.modelo) #SUB CLASE print("-----VEHICULO 1-----") class moto(Vehiculos): def haciendoWilly(self, haciendoWilly): andando=self.arrancar if(andando and haciendoWilly): return print("La moto esta haciendo willy") elif(haciendoWilly==False): return print("No se esta haciendoWilly") elif(andando==False and haciendowilly==True): return print("Primero arrancar la moto por favor") miMoto=moto("Honda", "CBR") miMoto.estado() miMoto.arrancar(True) miMoto.acelerando(True) miMoto.frenando(False) miMoto.haciendoWilly(True) print("------------------------------------------") #SUB CLASE print("-----VEHICULO 2-----") class chata(Vehiculos): def carga (self, carga): print("El vehiculo soporta una carga máxima de 250 kg") carga=int(input("Ingrese el valor en kg de la carga ")) if(carga>0 and carga<=250): return print("El vehiculo esta cargado") elif(carga==0): return print("El vehiculo NO esta cargado") elif(carga<0): return print("Por favor ingresar un valor POSITIVO") elif(carga>250): return print("La carga excede el límite y podría dañar el vehículo") miChata=chata("Toyota", "Hilux") miChata.carga(True) miChata.arrancar(True) miChata.frenando(True) print("------------------------------------------") #SUB CLASE print("-----VEHICULO 3-----") class electricos(Vehiculos): def __init__(self, marca, modelo): self.marca=marca self.modelo=modelo self.__enmarcha=False self.acelera=False self.frena=False self.autonomia=450 self.carga=False def cargando(self, cargando): self.carga=cargando if (cargando): print("El vehiculo se esta cargando") else: print("El vehiculo NO se esta cargando") miElectrico=electricos("Tesla", "Roadster") miElectrico.cargando(True) miElectrico.arrancar(True) print("------------------------------------------") #SUB CLASE print("-----VEHICULO 4-----") class motoElectrica(electricos, moto): pass miMotoE=motoElectrica("Narol", "ATR") miMotoE.arrancar(False) miMotoE.haciendoWilly(True)