#Não incluí o __str__ com a condição direto nele conforme mostra o professor, pois tenho que me policiar e fazer essa aplicação nas próximas oportunidades.
#___________________________________________
class Veiculo:
def __init__(self, marca, modelo):
self.marca = marca
self.modelo = modelo
self._ligado = False
@property
def ligado(self):
# if self._ligado == False:
# return 'Desigado'
# else:
# return 'Ligado'
return 'Ligado' if self._ligado else 'Desligado' #sugestão do colega @Gabriel Zarro Teixeira Silva Pinto
def __str__(self):
return f'Marca: {self.marca.ljust(17)}|Modelo: {self.modelo.ljust(17)}|Status: {self.ligado.ljust(10)}'
#___________________________________________
from 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 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__()}|Tipo: {self.tipo}'
#___________________________________________
from carro import Carro
from moto import Moto
moto_1 = Moto('Honda', 'CG150', 'Street')
moto_2 = Moto('Suzuki', 'V-Strom', 'Trail')
moto_3 = Moto('Harley-Davidson', 'Sportster','Custom')
carro_1 = Carro('Dogde', 'Ram 2500', 4)
carro_2 = Carro('Dodge', 'Charger HellCat', 2)
carro_3 = Carro('Dodge', 'Viper', 2)
print('*' * 30)
print('Motos:')
print(moto_1)
print(moto_2)
print(moto_3)
print()
print('*' * 30)
print('Carros:')
print(carro_1)
print(carro_2)
print(carro_3)
******************************
Motos:
Marca: Honda |Modelo: CG150 |Status: Desligado |Tipo: Street
Marca: Suzuki |Modelo: V-Strom |Status: Desligado |Tipo: Trail
Marca: Harley-Davidson |Modelo: Sportster |Status: Desligado |Tipo: Custom
******************************
Carros:
Marca: Dogde |Modelo: Ram 2500 |Status: Desligado |Portas: 4
Marca: Dodge |Modelo: Charger HellCat |Status: Desligado |Portas: 2
Marca: Dodge |Modelo: Viper |Status: Desligado |Portas: 2