Dashed Arrow Down Rule

时间:2014-08-08 14:15:57

标签: python inheritance

我正在阅读一本书的这一章:http://www.cafepy.com/article/python_types_and_objects/ch04.html

在第一页上有这个片段:

  

Dashed Arrow Down Rule

     

如果B是M的实例,而A是B的子类,则A也是M的实例。

我无法想象这种情况,我认为此规则会混淆实例和类。是否有任何工作代码解决方案来实现这种关系?或者也许我完全理解它错了?

1 个答案:

答案 0 :(得分:1)

看起来措辞不好。我认为它应该读起来像:

  

如果B是M的实例,并且M是A的子类,那么B也是A的实例。

但是,如果你想从字面上理解它,你可以把它解释为

  • M - 元类
  • B - M的一个实例,即一个类
  • A - B
  • 的子类

在这种情况下,A确实也是元类M的一个实例。

看过该页面上的图4.2,很明显您只能将M解释为元类,因为AB显然属于类XA的一个实例。奇怪的是,作者似乎没有其他任何地方承认元类的概念,所以提出一个暗示它们存在的规则是奇怪的。