Множественное наследование
При множественном наследовании, применяется правило MRO (Method Resolution Order) - порядок разрешения методов - тот кто левее, тот главнее
Будет искать метод сначала в Proffessor потом в Student. Т.к. в Proffessor есть такой метод, то выведет его.
class Person:
def hello(self):
print("I am Human")
class Student(Person):
def hello(self):
print("I am a student")
class Proffessor(Person):
def hello(self):
print("I am a proffessor")
class SomeOne(Proffessor, Student):
pass
s = SomeOne()
s.hello()
# I am a proffessor
12345678910111213141516171819
Чтобы посмотреть, как будет произведен поиск в пространстве имен нужных свойств и методов, можно вызвать функцию mro()
у экземпляра класса.
...
s.__class__.mro()
# [__main__.SomeOne, __main__.Prof, __main__.Student,__main__.Person, object]
1234
Last updated
Was this helpful?