1
resposta

[Projeto] Carro

from abc import ABC, abstractmethod

class Veiculo(ABC):
    def __init__(self, marca, modelo):
        self._marca = marca
        self._modelo = modelo
    
    @abstractmethod
    def ligar(self):
        pass

class Carro(Veiculo):
    def __init__(self, marca, modelo, cor):
        super().__init__(marca, modelo)
        self._cor = cor

    def __str__(self):
        return f"Carro 1: {self._marca} {self._modelo}, Cor: {self._cor}"

    def ligar(self):
        print(f'O carro {self._modelo} está ligado.')
from veiculo import Carro

carro1 = Carro('Porsche', '911', 'Azul')
print(carro1)
1 resposta

Oi, João! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.

Gostei do uso de classe abstrata com ABC e @abstractmethod, além da sobrescrita do método especial __str__, que deixa a representação do objeto mais clara e organizada no print.

Uma dica interessante para o futuro é usar o método especial __repr__, que ajuda na depuração e exibe o objeto de forma mais técnica.


class Carro(Veiculo):
    def __repr__(self):
        return f"Carro(marca={self._marca}, modelo={self._modelo}, cor={self._cor})"

Esse código define como o objeto será exibido em logs ou no console interativo, facilitando a leitura durante testes.

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