我假设这个问题很复杂,但学习 OWL 为生活、宇宙和一切开辟了新的视角。我在这里谈哲学。
我正在尝试实现一个 C 类,它是 B 的子类,而 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(它不是一种编程语言)中允许这样做而在编程语言中不允许这样做?