Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Как работает механизм наследования в Python?
Пример кода:
class A:
def greet(self):
print("Привет от A")
class B(A):
def greet(self):
print("Привет от B")
class C(A):
def greet(self):
print("Привет от C")
class D(B, C):
pass
d = D()
d.greet() # Вывод: Привет от B
print(D.__mro__) # Вывод: (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)
❗️ Python поддерживает множественное наследование. При поиске метода или атрибута интерпретатор использует алгоритм C3 linearization (MRO — Method Resolution Order), который определяет порядок обхода классов. Порядок можно посмотреть с помощью атрибута __mro__. Если метод не найден в текущем классе, Python ищет его в родительских классах в порядке, определённом MRO.
Ссылка на документацию по наследованию
