1
resposta

08 Hora da prática: instância de uma classe

#1.Crie uma Classe Pai (Veiculo)
class Veiculo:
  def __init__(self, marca, modelo):
    self.marca = marca
    self.modelo = modelo
    self._ligado = False
  
  #2.Construa o Método Especial __str__:
  def __str__(self):
    # estado de ligado/desligado do veículo
    ligado_desligado = "Ligado" if self._ligado else "Desligado"
    return f"Marca: {self.marca}, Modelo: {self.modelo}, Ligado: {ligado_desligado}"

#3.Crie uma Classe Filha (Carro)
class Carro(Veiculo):
  def __init__(self,marca,modelo,portas):
    super().__init__(marca,modelo)
    self.portas = portas
  
  #4.Implemente o Método Especial __str__ na Classe Filha (Carro)
  def __str__(self):
    return f"{super().__str__()}, Portas:{self.portas}"

#5.Crie uma Classe Filha (Moto): 
class Moto(Veiculo):
  def __init__(self,marca,modelo,tipo):
    super().__init__(marca,modelo)
    self.tipo = tipo  
  
  #6.Implemente o Método Especial __str__ na Classe Filha (Moto): 
  def __str__(self):
    return f"{super().__str__()}, Tipo: {self.tipo}"

#7.Crie um Arquivo Main (main.py):
main.py

#8.Importe e Instancie Objetos:
from veiculos import Carro, Moto

#9.Exiba as Informações:
carros = [
    Carro("Chevrolet", "Opala", 2),
    Carro("Ford", "Mustang", 2),
    Carro("Volkswagen", "Fusca", 2)
]

motos = [
    Moto("Honda", "CG 160", "Casual"),
    Moto("Harley-Davidson", "Fat Boy", "Cruiser"),
    Moto("Ducati", "Panigale", "Esportiva")
]

for i, carro in enumerate(carros):
    print(carro)
    if i == len(carros) - 1:
        print("-" * len(str(carro)))


for moto in motos:
    print(moto)
!python main.py
Marca: Chevrolet, Modelo: Opala, Ligado: Desligado, Portas:2
Marca: Ford, Modelo: Mustang, Ligado: Desligado, Portas:2
Marca: Volkswagen, Modelo: Fusca, Ligado: Desligado, Portas:2
-------------------------------------------------------------
Marca: Honda, Modelo: CG 160, Ligado: Desligado, Tipo: Casual
Marca: Harley-Davidson, Modelo: Fat Boy, Ligado: Desligado, Tipo: Cruiser
Marca: Ducati, Modelo: Panigale, Ligado: Desligado, Tipo: Esportiva
1 resposta

Olá, Carlos!

Parabéns por concluir o desafio Hora da prática: instância de uma classe. Ficou nítido como você aplicou os pilares da Orientação a Objetos, especialmente o conceito de Herança, para organizar seu código de forma limpa e escalável.

Sua estruturação das classes Carro e Moto herdando de Veiculo está correta e demonstra um ótimo domínio do uso do super().__init__ e do método especial __str__. Ao reaproveitar a lógica da classe pai e apenas adicionar as especificidades de cada veículo, você garante que o código seja direto e objetivo, facilitando muito a manutenção. O uso de uma lista para organizar as instâncias e o laço for para exibição é uma prática excelente para lidar com múltiplos objetos.

Na sua visão, você acredita que utilizar a herança facilitou a criação das diferentes categorias de veículos ou você acha que criar classes separadas desde o início seria mais simples para este cenário?

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