I am learning python and I am practicing the inheritance in the classes I can not manage to make the code when the motoElecrica class uses the method doingWilly without having used the "start" method to show me a message that first I must start what I achieve is that it is printed on the console that the electric motorcycle is "doing willy" even when the start method is not used. This is my code
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)