Сложный вопрос, я полагаю, но изучение OWL открыло новую перспективу для жизни, вселенной и всего остального. Я собираюсь философствовать здесь.
Я пытаюсь достичь класса C, который является подклассом B, который, в свою очередь, является подклассом C. Просто для забавы, вы знаете ...
Так вот оно
>>> class A(object): pass
...
>>> class B(A): pass
...
>>> class C(B): pass
...
>>> B.__bases__
(<class '__main__.A'>,)
>>> B.__bases__ = (C,)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a __bases__ item causes an inheritance cycle
>>>
ясно, Python умный и запрещает это. Однако в OWL можно определить два класса как взаимные подклассы. Вопрос в том, что за ошеломляющее объяснение, почему это разрешено в OWL (который не является языком программирования) и запрещено в языках программирования?