1
resposta

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

1: Crie uma Classe Pai (Veiculo): Implemente uma classe chamada Veiculo com um construtor que aceita dois parâmetros, marca e modelo. A classe deve ter um atributo protegido _ligado inicializado como False por padrão.

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

2: Construa o Método Especial str: Adicione um método especial str à classe Veiculo que retorna uma mensagem formatada com a marca, modelo e o estado de ligado/desligado do veículo.

def __str__(self):
        condicao = 'SIM' if self._ligado else 'NÃO'
        return(f'MARCA: {self.marca} | MODELO: {self.modelo} | O VEÍCULO ESTÁ LIGADO?: {condicao}')

3: Crie uma Classe Filha (Carro): Agora, crie uma classe chamada Carro que herda da classe Veiculo. No construtor da classe Carro, inclua um novo atributo chamado portas que indica a quantidade de portas do carro.

from veiculo import Veiculo

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: Adicione um método especial str à classe Carro que estenda o método da classe pai (Veiculo) e inclua a informação sobre a quantidade de portas do carro.

def __str__(self):
        condicao = 'SIM' if self._ligado else 'NÃO'
        return(f'MARCA: {self.marca} | MODELO: {self.modelo} | O VEÍCULO ESTÁ LIGADO?: {condicao} | QUANTIDADE DE PORTAS: {self.portas}')

5: Crie uma Classe Filha (Moto): Similarmente, crie uma classe chamada Moto que também herda de Veiculo. Adicione um novo atributo chamado tipo ao construtor, indicando se a moto é esportiva ou casual.

from veiculo import Veiculo

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): Adicione um método especial str à classe Moto que estenda o método da classe pai (Veiculo) e inclua a informação sobre o tipo da moto.

def __str__(self):
        condicao = 'SIM' if self._ligado else 'NÃO'
        return(f'MARCA: {self.marca} | MODELO: {self.modelo} | O VEÍCULO ESTÁ LIGADO?: {condicao} | TIPO: {self.tipo}')

7 e 8: Crie um Arquivo Main (main.py): Crie um arquivo chamado main.py no mesmo diretório que suas classes, depois, no arquivo main.py, importe as classes Carro e Moto. Em seguida, crie três instâncias de Carro e Moto com diferentes marcas, modelos, quantidade de portas e tipos.

from carro import Carro
from moto import Moto

carro1 = Carro('Toyota', 'Corolla Cross', 4)
carro2 = Carro('Chevrolet', 'Montana', 2)
carro3 = Carro('Ford', 'Focus RS', 4)

moto1 = Moto('Honda', 'CB 300F Twister', 'Esportiva')
moto2 = Moto('Kawazaki', 'Ninja 650', 'Espotiva')
moto3 = Moto('Yamaha', 'Neo 125 UBS', 'Casual')

9: Exiba as Informações: Para cada instância, imprima no console as informações utilizando o método str.

print(carro1, carro2, carro3, sep='\n')

print(moto1, moto2, moto3, sep='\n')

Console:

MARCA: Toyota | MODELO: Corolla Cross | O VEÍCULO ESTÁ LIGADO?: NÃO | QUANTIDADE DE PORTAS: 4

MARCA: Chevrolet | MODELO: Montana | O VEÍCULO ESTÁ LIGADO?: NÃO | QUANTIDADE DE PORTAS: 2

MARCA: Ford | MODELO: Focus RS | O VEÍCULO ESTÁ LIGADO?: NÃO | QUANTIDADE DE PORTAS: 4

MARCA: Honda | MODELO: CB 300F Twister | O VEÍCULO ESTÁ LIGADO?: NÃO | TIPO: Esportiva

MARCA: Kawazaki | MODELO: Ninja 650 | O VEÍCULO ESTÁ LIGADO?: NÃO | TIPO: Espotiva

MARCA: Yamaha | MODELO: Neo 125 UBS | O VEÍCULO ESTÁ LIGADO?: NÃO | TIPO: Casual

1 resposta

Oi, André! Como vai?

Seu código está ótimo - apresenta boa estrutura e endentação correta. Parabéns! Isso é super importante para que a leitura seja de fácil entendimento. Continue praticando e aplicando seus conhecimentos.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!