main.py
from modelos.carro import Carro
carro_audi = Carro('Audi', 'A8', 'branco')
carro_bmw = Carro('BMW', 'M8', 'azul')
carro_mercedes = Carro('Mercedes', 'S500', 'cinza')
def main():
Carro.exibir_carros()
print('\n')
carro_audi.ligar()
if __name__ == '__main__':
main()
carro.py
from modelos.veiculo import Veiculo
class Carro(Veiculo):
carros = []
def __init__(self, marca, modelo, cor):
super().__init__(marca, modelo)
self._cor = cor
Carro.carros.append(self)
def __str__(self):
return f'Marca: {self._marca.ljust(15)} | Modelo: {self._modelo.ljust(15)} | Cor: {self._cor}'
def ligar(self):
print(f' O carro {self._marca} {self._modelo} está ligado')
@classmethod
def exibir_carros(cls):
if not cls.carros:
print('Nenhum carro registrado.')
return
print('Veículos disponíveis')
print(f'ID | {"Marca":^15} | {"Modelo":^15} | {"Cor":^15}')
for i, carro in enumerate(cls.carros, start=1):
print(f'{str(i).ljust(2)} | {carro._marca.ljust(15)} | {carro._modelo.ljust(15)} | {carro._cor}')
veiculo.py
from abc import ABC, abstractmethod
class Veiculo(ABC):
def __init__(self, marca, modelo):
self._marca = marca
self._modelo = modelo
@abstractmethod
def ligar(self):
pass