我正在阅读一本书的这一章:http://www.cafepy.com/article/python_types_and_objects/ch04.html
在第一页上有这个片段:
Dashed Arrow Down Rule
如果B是M的实例,而A是B的子类,则A也是M的实例。
我无法想象这种情况,我认为此规则会混淆实例和类。是否有任何工作代码解决方案来实现这种关系?或者也许我完全理解它错了?
答案 0 :(得分:1)
看起来措辞不好。我认为它应该读起来像:
如果B是M的实例,并且M是A的子类,那么B也是A的实例。
但是,如果你想从字面上理解它,你可以把它解释为
M
- 元类B
- M
的一个实例,即一个类A
- B
在这种情况下,A
确实也是元类M
的一个实例。
看过该页面上的图4.2,很明显您只能将M
解释为元类,因为A
和B
显然属于类X
是A
的一个实例。奇怪的是,作者似乎没有其他任何地方承认元类的概念,所以提出一个暗示它们存在的规则是奇怪的。