1
resposta

[Projeto] resoluçao

class Veiculo:

    def __init__(self,marca,modelo) :
        self.marca = marca
        self.modelo = modelo
        self.ligado = False

    def __str__(self):
        status = "ligado" if self.ligado else "desligado"
        return f"{self.marca} {self.modelo} - Status: {status}"
from veiculos.veiculo import Veiculo

class Carro(Veiculo):
    def __init__(self,marca,modelo,portas):
        super().__init__(marca,modelo)
        self._portas = portas
        
    def __str__(self):
        return f'{super().__str__()}  -Portas:{self._portas} ' 
        
from veiculos.veiculo import Veiculo

class Moto(Veiculo):
    def __init__(self,marca,modelo,tipo):
        super().__init__(marca,modelo)
        self._tipo = tipo
    
    def __str__(self):
        return f'{super().__str__()} - Estilo:{self._tipo}'
from veiculos.carro import Carro
from veiculos.moto import Moto






carro1 = Carro("Toyota", "Corolla",4)
carro2 = Carro("Honda", "Civic",2)
carro3 = Carro("Ford", "Fusion",4)

moto1 = Moto("Harley-Davidson", "Street 750", "Esportiva")
moto2 = Moto("Honda", "CB 500", "Casual")
moto3 = Moto("Yamaha", "MT-09", "Esportiva")

print(carro1)
print(carro2)
print(carro3)

print(moto1)
print(moto2)
print(moto3)
1 resposta

Olá, Cauã! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de herança para organizar as classes, utilizou muito bem o método __str__ para personalizar a saída dos objetos e ainda compreendeu a importância de diferenciar atributos específicos de cada tipo de veículo, como portas nos carros e estilo nas motos.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é adicionar métodos que alterem o estado do veículo, como ligar e desligar. Assim:

class Veiculo:
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo
        self.ligado = False

    def ligar(self):
        self.ligado = True

    def desligar(self):
        self.ligado = False

    def __str__(self):
        status = "ligado" if self.ligado else "desligado"
        return f"{self.marca} {self.modelo} - Status: {status}"

Isso faz com que os objetos tenham comportamentos mais dinâmicos, simulando melhor a realidade.

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!