Да, в Python подкласс может иметь двух и более суперклассов — это называется множественное наследование.
Пример:
class Flyer:
def fly(self):
print(«Я могу летать»)
class Swimmer:
def swim(self):
print(«Я могу плавать»)
class Duck(Flyer, Swimmer):
pass
d = Duck()
d.fly() # Я могу летать
d.swim() # Я могу плавать
Здесь Duck — подкласс, который наследует и Flyer, и Swimmer.
Python использует алгоритм MRO (Method Resolution Order), чтобы определить порядок, в котором ищутся методы при множественном наследовании.
Потенциальные сложности:
• Если оба родителя имеют методы с одинаковыми именами, нужно понимать в каком порядке они вызываются.
• Иногда нужно явно использовать super(), особенно в ромбовидном наследовании, чтобы избежать дублирования.
>>Click here to continue<<