DIP(Dependency Inversion Principle)

class Car:
    def __init__(self, brand, model, year):
        self.brand = brand
        self.model = model
        self.year = year

    def get_brand(self):
        return self.brand

    def get_model(self):
        return self.model

    def get_year(self):
        return self.year
    
    def fix(self):
		    pass 

class ElectricCar(Car):
    def __init__(self, brand, model, year, battery):
        super().__init__(brand, model, year)
        self.battery = battery

    def get_battery(self):
        return len(self.battery)

class GasCar(Car):
    def __init__(self, brand, model, year, lpg):
        super().__init__(brand, model, year)
        self.lpg = lpg

    def get_lpg(self):
        return len(self.lpg)

class CarLogger:
    def log(self, car):
        print(f"Car: {car.get_brand()} {car.get_model()} ({car.get_year()}) logged")