Сложение двух Классов

кто то может подсказать, я так понимаю, нужно использовать метод add_ для слияние двух классов, вот и задача состоит в том, что, получается "AirCar" Скорость и Длина которого будут равны среднему между атрибутами Car и Plane которые я сложил. вот, что мой код.

class Car:
    average_speed = 60
    average_lenght = 5
    cars = []
 
    def __init__(self, model, speed=average_speed, length=average_lenght):
        self.model = model
        self.speed = speed
        self.length = length
 
 
class AirPlane(Car):
    average_speed = 300
    average_lenght = 10
    Plane = []
 
    def magic(self):
        super(Car, self).__init__()
 
 
class AirCar(Car, AirPlane):
    def __add__(self, other):
        if self.cars:
            self.average_speed = sum([car.speed for car in self.cars]) / len(self.cars)
            self.average_lenght = sum([AirPlane.lenght for AirPlane in self.Plane]) / len(self.Plane)
            self.Aircar.append(self)

Ответы (1 шт):

Автор решения: Andrew Holovko

Я немного упростил ваш пример, надеюсь суть вы поймёте. В нём я показываю Вам как создавать объекты из классов, а после передавать их в класс. Можно конечно делать валидацию на класс, я сделал на атрибут.

class Car:
    average_speed = 17


class AirPlane:
    average_speed = 600


class AirCar:
    total_speed: int 

    def __init__(self, *args):
        self._add(*args)
        print(self.total_speed)

    def _add(self, *args):
        self.total_speed = sum([cls.average_speed for cls in args if hasattr(cls, 'average_speed')]) / len(args)

car = Car()
plain = AirPlane()
c = AirCar(car,plain)

# 308.5
→ Ссылка