carro.py
from veiculos.veiculo import Veiculo
class Carro(Veiculo):
def __init__(self,marca,modelo,cor):
super().__init__(marca,modelo)
self._cor = cor
self._ativo = False
def __str__(self):
return f'{self._marca.ljust(15)} | {self._modelo.ljust(15)} | {self._cor}'
def ligar(self):
print(f'O carro {self._marca} está ligado')
veiculo.py
from abc import ABC, abstractmethod
class Veiculo(ABC):
veiculos = []
def __init__(self,marca,modelo):
self._marca = marca
self._modelo = modelo
Veiculo.veiculos.append(self)
def __str__(self):
return f'{self._marca.ljust(15)} | {self._modelo.ljust(15)} '
@classmethod
def listar_carros(cls):
print(f'{'Marca do carro'.ljust(15)} | {'Modelo'.ljust(15)} | {'Cor'}')
for veiculo in cls.veiculos:
print(f'{veiculo._marca.ljust(15)} | {veiculo._modelo.ljust(15)} | {veiculo._cor.ljust(15)}')
@abstractmethod
def ligar(self):
print(f'O carro {self._modelo} está ligado')
main.py
from veiculos.carro import Carro
carro1 = Carro('Dodge', 'Charger', 'Preto')
carro2 = Carro('Volkswagen', 'Golf', 'Branco')
carro3 = Carro('Fiat', 'Uno', 'Vermelho')
carro1.ligar()
carro2.ligar()
carro3.ligar()
print()
Carro.listar_carros()
def main():
pass
if __name__ == '__main__':
main()