from abc import ABC, abstractmethod
# 1- Crie uma classe chamada Veiculo...
class Vehicle(ABC):
# 3- No mesmo arquivo, crie um construtor para a classe Veiculo que aceita os parâmetros marca e modelo.
def __init__(self, make: str, model: str):
self.make = make
self.model = model
# 2- ...com um método abstrato chamado ligar.
@abstractmethod
def start(self):
pass
from vehicle_v2 import Vehicle
# 4- Crie uma nova classe chamada Carro que herda da classe Veiculo.
class Car(Vehicle):
# 5- No construtor da classe Carro, utilize o método super() para chamar o construtor da classe pai e atribua o atributo específico cor à classe filha.
def __init__(self, make: str, model: str, color: str):
super().__init__(make, model)
self.color = color
def start(self):
return f"The car {self.model} is on!"
# Create method str to show the the instance in app.py
def __str__(self):
return f"Make: {self.make} | Model: {self.model} | Color: {self.color}\n {self.start()}"
# 6- Em um arquivo chamado main.py, importe a classe Carro.
from car_v2 import Car
from vehicle_v2 import Vehicle
# 7- No arquivo main.py, instancie três objetos da classe Carro com diferentes características, como marca, modelo e cor.
corsa = Car("Chevrolet", "Corsa", "red")
palio = Car("Fiat", "Palio", "black")
uno = Car("Fiat", "Uno", "gray")
vehicles = [corsa, palio, uno]
print("Vehicles: \n")
for vehicle in vehicles:
if isinstance(vehicle, Car):
print(f"{(type(vehicle).__name__).upper()} - {vehicle}")
else:
raise Exception("The object is not a valid vehicle.")