1
resposta

[Projeto] Carro

Veiculos.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')

Carros.py

from veiculos 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')

main.py

from carros import Carro

carro1 = Carro('Hyundai', 'I30', 'Prata')
carro2 = Carro('Volkswagen', 'Gol', 'Preto')
carro3 = Carro('Fiat', 'Uno', 'Verde')

carro1.ligar()
carro2.ligar()
carro3.ligar()
print()

Carro.listar_carros()

def main():
    pass

if __name__ == '__main__':
    main() 
1 resposta

Olá, Mateus! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de classes abstratas para definir uma estrutura base, utilizou muito bem o método __str__ para formatar a representação do objeto e ainda compreendeu a importância do decorador @abstractmethod para garantir que subclasses implementem métodos essenciais.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!