Complex question I assume, but studying OWL opened a new perspective to live, the universe and everything. I\'m going philosophical here.
I am trying to achieve a cl
Python doesn't allow it because there is no sensible way to do it. You could invent arbitrary rules about how to handle such a case (and perhaps some languages do), but since there is no actual gain in doing so, Python refuses to guess. Classes are required to have a stable, predictable method resolution order for a number of reasons, and so weird, unpredictable or surprising MROs are not allowed.
That said, there is a special case in Python: type
and object
. object
is an instance of type
, and type
is a subclass of object
. And of course, type
is also an instance of type
(since it's a subclass of object
). This might be why OWL allows it: you need to start a class/metaclass hierarchy in some singularity, if you want everything to be an object and all objects to have a class.