1
resposta

Resolução

No fim a resolução completa do meu código ficou:

Veículo.py:

from abc import ABC, abstractmethod

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

    @abstractmethod
    def ligar(self):
        pass

    def __str__(self):
        return f'Nome: {self._nome} | Marca: {self._marca} | Modelo: {self._modelo} | '

carro.py:

from veiculo import Veiculo

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

    def ligar(self):
        return 'Carro acionado!'
    
    def __str__(self):
        return f'{super().__str__()}Cor: {self._cor}'
        

main.py:

from carro import Carro

mercedes_f1 = Carro('W15 E Performance', 'Mercedes-AMG', 'Fórmula 1', 'Preto')
ferrari_f1 = Carro('SF-24 aka Project 676', 'Scuderia Ferrari', 'Fórmula 1', 'Vermelho Ferrari')
sauber_f1 = Carro('Kick Sauber C44', 'Kick Sauber', 'Charrete', 'Preto/Verde')

print(mercedes_f1)
print(ferrari_f1.ligar())
print(ferrari_f1)
print(mercedes_f1.ligar())
print(sauber_f1)
print(sauber_f1.ligar())

Ao executar:

Imagem ilustrativa do que ocorre ao executar o código no console utilizando o comando python main.py

1 resposta

Bom dia Vinicius! Tudo bem com você?

Meus parabéns pela resolução da atividade, testei o seu código e ele apresentou o resultado esperado. Gostaria de aproveitar a oportunidade e deixar uma recomendação de leitura do artigo POO: o que é programação orientada a objetos?, que apresenta os principais pontos desse modelo de programação, e assim você poderá se aprofundar ainda mais nesse assunto.

Continue compartilhando seu desenvolvimento e conte com a Alura nessa jornada.

Fico à disposição. Abraços e bons estudos!

Continue se empenhando e se tiver dúvidas, não hesite em voltar ao fórum ✓