I need two levels of abstract classes and a third level concrete class:
from abc import ABC
class Shape(ABC):
...
class Quad(ABC, Shape):
...
class Square(Quadrilateral)
...
This code generates TypeError: Cannot create a consistent method resolution
against the declaration of Quad
. I realize that the problem is a multiple inheritance ambiguity. Quad
doesn't know whether to derive certain functions directly from ABC
or from Shape
, but how do I fix it? I can't drop ABC
from Quad
's declaration because then it won't be abstract anymore.