Почему порядок базового класса имеет значение при переопределении @abstractmethods в базовых классах? Можно ли переопределить абстрактные методы в базовых классах, не завися от порядка базовых классов?
from abc import ABC, abstractmethod
class A(ABC):
@abstractmethod
def f(self):
raise NotImplementedError
class B:
def f(self):
pass
# class C(A,B): pass # fails
class C(B,A): pass # works
Пока работает C(B,A)
, C(A,B)
приводит к
TypeError: Can't instantiate abstract class C with abstract methods f