Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

MÉTODOS ESPECIAIS E ATRIBUTOS

Arquivo classes.py:

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 ligar(self):
       return f"O {self.modelo} está ligado"
    
    def __str__(self):
       return f"Marca: {self.marca} | Modelo: {self.modelo} | Cor: {self.cor}"

Arquivo main.py

# arquivo: main.py
from classe.classes import Carro

def main():
    # 6. Instanciando três objetos da classe Carro com diferentes características
    carro_01 = Carro("Volkswagen", "Polo", "Prata")
    carro_02 = Carro("Chevrolet", "Onix", "Branco")
    carro_03 = Carro("Ford", "Mustang", "Preto")

    # Exibindo os objetos
    print(carro_01)
    print(carro_02)
    print(carro_03)

    # Testando o método ligar
    print(carro_01.ligar())

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

Oi, André! Como vai?

Achei interessante como você aplicou herança com classe abstrata e implementou o método ligar, além de sobrescrever o __str__ para melhorar a visualização dos objetos. Isso mostra um bom entendimento de polimorfismo e organização de código orientado a objetos.

Uma dica interessante para o futuro é usar o método especial __repr__, que é útil para representar o objeto de forma mais técnica, principalmente em debug:


class Carro:
    def __repr__(self):
        return f"Carro(marca='{self.marca}', modelo='{self.modelo}', cor='{self.cor}')"

Esse codigo define uma representacao mais detalhada do objeto, facilitando a leitura durante testes e depuracao.

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