1
resposta

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

Organização de diretório:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Item_veiculo.py

class ItemVeiculo:
    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}"

carro.py

from item_veiculo import ItemVeiculo

class Carro(ItemVeiculo):
    def __init__(self, marca, modelo, portas):
        super().__init__ (marca, modelo)
        self.portas = portas
    
    def __str__(self):
        return f"{super().__str__()} - Portas: {self.portas}"

moto.py

from item_veiculo import ItemVeiculo

class Moto(ItemVeiculo):
    def __init__(self, marca, modelo, tipo):
        super().__init__ (marca, modelo)
        self.tipo = tipo
    
    def __str__(self):
        return f"{super().__str__()} - Tipo: {self.tipo}"

main.py

from carro import Carro
from moto import Moto

carro1 = Carro('VW', 'Santana', '4')
carro2 = Carro('Ford', 'Fiesta',  '2')
carro3 = Carro('Toyota', 'Yaris', '2')
moto1 = Moto('Honda', 'CB400',  'esportiva')
moto2 = Moto('Harley', 'H300',  'esportiva')
moto3 = Moto('Yamara', 'Scooter',  'casual')


print(moto1)
print(carro2)
print(carro3)
print(moto1)
print(moto2)
print(moto3)

1 resposta

Ei! Tudo bem, Ricardo?

Sua organização de diretórios e a estruturação das classes estão excelentes! Os conceitos de herança, utilizando o super().init para aproveitar os atributos da classe pai, e a sobrescrita de métodos com o str para personalizar a exibição de cada objeto ficaram bem aplicados.

Parabéns pela dedicação! Caso tenha dúvidas, não deixe de compartilhar no fórum.

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