Как реализовать 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