Подкласс ElectricCar имеет еще 1 аргумент чем его родительские классы, но этот аргумент не уникален для своего класса, поэтому я не хочу дублировать код. Я хочу, чтобы аргумент «ускорение» обрабатывался классом Car, а «диапазон» обрабатывался классом ElectricVehicle. Но поскольку и Car, и ElectricVehicle принимают только два аргумента, это не работает.
Код: Выделить всё
class Vehicle:
def __init__(self, brand):
self.brand = brand
class Car(Vehicle):
def __init__(self, brand, acceleration):
super().__init__(brand)
self.acceleration = acceleration
class ElectricVehicle(Vehicle):
def __init__(self, brand, range):
super().__init__(brand)
self.range = range
class ElectricCar(Car, ElectricVehicle):
def __init__(self, brand, acceleration, range):
super().__init__(brand, acceleration, range)
Код: Выделить всё
class Vehicle:
def __init__(self, brand, **kwargs):
super().__init__(**kwargs)
self.brand = brand
class Car(Vehicle):
def __init__(self, brand, acceleration, **kwargs):
super().__init__(brand, **kwargs)
self.acceleration = acceleration
class ElectricVehicle(Vehicle):
def __init__(self, brand, range, **kwargs):
super().__init__(brand, **kwargs)
self.range = range
class ElectricCar(Car, ElectricVehicle):
def __init__(self, brand, acceleration, range, **kwargs):
super().__init__(brand=brand, acceleration=acceleration, range=range, **kwargs)
Подробнее здесь: https://stackoverflow.com/questions/793 ... nt-classes