Как реализовать super().__init__() с аргументами от разных классов?

я хочу чтобы при создании экземпляра d класса Doktor вначале вызывался метод init от класса Person потом init класса Driver и добавлялся ещё атрибут age от самого Doktor. Возможно ли такое сделать с помощью super() ???

class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

class Draver:
    def __init__(self,car):
        self.car=car

class Doktor(Person,Draver):
    def __init__(self, name, surname,car, age):
        super().__init__(name, surname,car)
        self.age = age

p = Person("Jon", "smit")
d = Doktor("ivan", "ivanov","bibika", 30)

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

Автор решения: gil9red

Явный вызов конструкторов:

class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

class Draver:
    def __init__(self,car):
        self.car=car

class Doktor(Person,Draver):
    def __init__(self, name, surname,car, age):
        Person.__init__(self, name, surname)
        Draver.__init__(self, car)
        self.age = age

p = Person("Jon", "smit")
d = Doktor("ivan", "ivanov","bibika", 30)
print(d.name, d.surname, d.car, d.age)
# ivan ivanov bibika 30
→ Ссылка