1
resposta

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

#Classe Veiculo

#criação da classe pai Veiculo
class Veiculo:
    lista_veiculos = []
    
    def __init__(self, _marca, _modelo, _ligado):
        self._marca = _marca
        self._modelo = _modelo
        self._ligado = False
        Veiculo.lista_veiculos.append(self)

#Criação do método especial STR
    def __str__(self) -> str:
        if self._ligado:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | Ligado"
        else:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | Desligado"

#Criação do método para alterar o status Ligado/Desligado
    def alterar_ligado(self):
        self._ligado = not self._ligado
        return self._ligado

#Classe Carro

#Importação das classes criadas
from modelos.automovel.veiculo import Veiculo

#criação da classe filha Carro
class Carro(Veiculo):
    def __init__(self, _marca, _modelo, _ligado, _portas):
        super().__init__(_marca, _modelo, _ligado)
        self._portas = _portas
        Carro.lista_veiculos.append(self)
        
#Criação do método especial STR
    def __str__(self) -> str:
        if self._ligado:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | {"Ligado".ljust(25)} | Portas: {self._portas} portas"
        else:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | {"Desligado".ljust(25)} | Portas: {self._portas} portas"

#Classe Moto

#Importação das classes criadas
from modelos.automovel.veiculo import Veiculo

#criação da classe filha Moto
class Moto(Veiculo):
    def __init__(self, _marca, _modelo, _ligado, _tipo):
        super().__init__(_marca, _modelo, _ligado)
        self._tipo = _tipo
        Moto.lista_veiculos.append(self)

#Criação do método especial STR
    def __str__(self) -> str:
        if self._ligado:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | {"Ligado".ljust(25)} | Tipo: {self._tipo} portas"
        else:
            return f"Marca: {self._marca.ljust(25)} | Modelo: {self._modelo.ljust(25)} | {"Desligado".ljust(25)} | Tipo: {self._tipo} portas"

#Função main()

#Importação das classes criadas
from modelos.automovel.veiculo import Veiculo
from modelos.automovel.carro import Carro
from modelos.automovel.moto import Moto

#Instanciando carros e motos e utilizando a função alterar_ligado() para mudar o status deste atributo para dois veiculos
carro1=Carro("Honda", "Fit", False, 5)
carro2=Carro("Toyota", "Etios", False, 5)
carro3=Carro("Ford", "Focus", False, 5)
moto1=Moto("Honda", "CG150", False, "Casual")
moto2=Moto("Yamaha", "Yamaha YZF R-3", False, "Esportiva")
moto3=Moto("Kawasaki", "Kawasaki Ninja 650 R", False, "Esportiva")
Veiculo.alterar_ligado(carro2)
Veiculo.alterar_ligado(moto3)
Veiculo.alterar_ligado(carro2)

#Teste de impressão dos veículos instanciados
def main():
    print(moto1)
    print(moto2)
    print(moto3)
    print(carro1)
    print(carro2)
    print(carro3)

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

Olá, estudante.

Como vai?

Muito obrigado por compartilhar o andamento do seu projeto aqui com a gente. Isso mostra que você está de fato praticando e evoluindo. 

O seu código parece estar bem estruturado e funcional, tanto a declaração das classes, quanto os imports e as instâncias criadas. Parabéns :) Continue com essa dedicação.

Se precisar de ajuda, manda aqui. Bons estudos!