1
resposta

[Projeto] métodos especiais e atributos

modelo: veiculo.py

from abc import ABC, abstractclassmethod

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

    @abstractclassmethod
    def ligar():
        pass

modelo: carro.py

from modelos.veiculo import Veiculo

class Carro(Veiculo):

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

    def __str__(self):
        return f'Marca: {self._marca.ljust(15)} | Modelo: {self._modelo.ljust(15)} | Cor: {self._cor}'
    
    def ligar(self):
        return f"O carro {self._modelo} está ligado."

main.py

from modelos.carro import Carro

carro1 = Carro('Toyota', 'Corolla', 'Prata')
carro2 = Carro('Ford', 'Mustang', 'Vermelho')
carro3 = Carro('Tesla', 'Model 3', 'Preto')

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

Saída:

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

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Matheus, tudo bem?

Parabéns por compartilhar sua solução! Fico muito feliz em ver seu código em ação.

Você mandou muito bem! A implementação da classe abstrata Veiculo, a herança em Carro e, especialmente, o uso do método especial __str__ para formatar a saída ficaram excelentes.

O resultado ficou super organizado, parabéns pela dedicação!

Bons estudos!

Sucesso

Imagem da comunidade