Segue como apliquei:
veiculo.py
#CLASSE PAI
class Veiculos:
def __init__(self,marca,modelo,ativo=False):
self._marca = marca
self._modelo = modelo
self._ativo = ativo
def __str__(self):
tipo_ativo = 'Ativo' if self._ativo else 'Inativo' # Muda True or False para Ativo e Inativo
return f'Marca: {self._marca.ljust(10)} | Modelo: {self._modelo.ljust(10)} | Status: {tipo_ativo.ljust(10)}'
carro.py
from veiculos import Veiculos
class Carro(Veiculos):
def __init__(self, marca, modelo, portas, ativo=False):
super().__init__(marca, modelo, ativo)
self._portas = portas
def __str__(self):
return super().__str__() + f' | Portas: {self._portas}'
moto.py
from veiculos import Veiculos
class Moto(Veiculos):
def __init__(self,marca,modelo,esportivo=False,ativo=False):
super().__init__(marca,modelo,ativo)
self._esportivo = esportivo
def __str__(self):
tipo_moto = "Esportiva" if self._esportivo else "Casual" #define se o carro é esportivo ou casual.
return super().__str__() + f' | Tipo: {tipo_moto}'
main.py
from carro import Carro
from moto import Moto
#exemplos
carro1 = Carro('Jeep', 'Renegade', 4)
carro2 = Carro('Volkswagen', 'Golf', 5)
carro3 = Carro('BMW', 'X5', 4, True)
moto1 = Moto('Yamaha', 'MT-07', True)
moto2 = Moto('Honda', 'CB500', False)
moto3 = Moto('Kawasaki', 'Ninja 400', True)
#lista pra ser usada pro "for"
veiculos = [carro1, carro2, carro3, moto1, moto2, moto3]
#print da lista
for veiculo in veiculos:
print(veiculo)
resultado final: