Olá, Andressa! Como vai?
Parabéns pela resolução da atividade!
Observei que você explorou o uso da herança para estruturar a classe Carro e Moto a partir de Veiculo, utilizou muito bem listas de classe para armazenar instâncias criadas e ainda compreendeu a importância de métodos de classe para listar os objetos de forma organizada.
Uma dica interessante para o futuro é ajustar alguns detalhes para deixar o código mais claro e consistente. Por exemplo, no construtor de Veiculo, o parâmetro protegido_ligado está sendo ignorado, já que você sempre define self._protegido_ligado = False. Se a ideia é permitir que o veículo seja criado já ligado ou desligado, pode ser feito assim:
class Veiculo:
def __init__(self, marca, modelo, protegido_ligado=False):
self._marca = marca
self._modelo = modelo
self._protegido_ligado = protegido_ligado
def __str__(self):
return f'{self._marca} | {self._modelo} | {self._protegido_ligado}'
@property
def status(self):
return 'Ligado' if self._protegido_ligado else 'Desligado'
Além disso, na classe Moto, o texto exibido no método listar_motos menciona o número de portas, mas o atributo é tipo. Ajustando:
@classmethod
def listar_motos(cls):
for moto in Moto.motos:
print(f'Marca da moto: {moto._marca} | Modelo: {moto._modelo} | status: {moto.status} | tipo: {moto.tipo}')
Essas pequenas melhorias tornam o código mais legível e coerente com os atributos definidos.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!

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