Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Prática]

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()    

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Bom dia Douglas, tudo bem?

Obrigado por compartilhar seu código no fórum da Alura. Para contribuir ainda mais com o seu aprendizado sobre a programação Orientada a Objetos, recomendo a leitura do artigo 4 pilares da Orientação a Objetos em Python, que apresenta com detalhes os temas de Abstração, Encapsulamento, Herança e Polimorfismo.

Continue estudando e conte com a Alura para evoluir sua carreira. Abraços e bons estudos!