Множественное наследование

При множественном наследовании, применяется правило 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() у экземпляра класса.

Last updated

Was this helpful?