Как создать двойной инлайн с polymorphic?

Для того чтобы создать двойной инлайн с полиморфизмом в Python, мы можем использовать наследование и переопределение методов.

Полиморфизм - это возможность использования одного и того же интерфейса для различных типов данных. В нашем случае, двойной инлайн означает, что мы создаем класс, который наследуется от двух других классов и может использовать их методы, предоставляя возможность вызывать эти методы в зависимости от конкретного объекта, с которым мы работаем.

Давайте рассмотрим пример.

У нас есть два класса - Animal и Vehicle. Класс Animal содержит метод sound(), который печатает звук, издаваемый животным, а класс Vehicle содержит метод drive(), который печатает информацию о транспортном средстве.

class Animal:
    def sound(self):
        print("Animal sound")

class Vehicle:
    def drive(self):
        print("Vehicle driving")

Теперь мы создадим класс DoubleInline, который наследуется от классов Animal и Vehicle и переопределит их методы.

class DoubleInline(Animal, Vehicle):
    def sound(self):
        print("DoubleInline sound")

    def drive(self):
        print("DoubleInline driving")

Теперь у нас есть двойной инлайн с полиморфизмом. Мы можем создать объект DoubleInline и вызвать методы sound() и drive() для этого объекта, которые будут относиться к методам, определенным в классе DoubleInline, но при необходимости мы также можем вызывать эти методы относительно классов Animal и Vehicle.

obj = DoubleInline()
obj.sound()  # выводит "DoubleInline sound"
obj.drive()  # выводит "DoubleInline driving"

super(DoubleInline, obj).sound()  # выводит "Animal sound"
super(DoubleInline, obj).drive()  # выводит "Vehicle driving"

Таким образом, мы создали двойной инлайн с полиморфизмом, где класс DoubleInline может использовать методы как относительно самого себя, так и относительно классов Animal и Vehicle.