1
resposta

[Projeto] Hora da prática: métodos especiais e atributos

from abc import ABC, abstractmethod

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

    @abstractmethod
    def ligar(self):
        pass
from Veiculos import Veiculos

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

from Carro import Carro

carro1 = Carro('Marca 1', 'Modelo 1', 'Azul')
carro2 = Carro('Marca 2', 'Modelo 2', 'Verde')
carro3 = Carro('Marca 3', 'Modelo 3', 'Rosa')
1 resposta

E aí, Ângelo! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você praticou o uso de classes abstratas com o módulo abc e aplicou muito bem o conceito de herança com super() para reaproveitar atributos da classe base.

Uma sugestão para evoluir ainda mais é usar a implementação do método abstrato ligar(). Veja só:

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

    def ligar(self):
        print(f'O carro {self._marca} {self._modelo} foi ligado.')

Essa abordagem torna a sua classe ainda mais funcional.

Ícone de sugestão Para saber mais:

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

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!