我一直在阅读关于元类的内容,但当涉及到
我知道它们处于层次结构的顶部,并且它们是用C代码实现的。我也明白
在SO上我找到了答案之一,其中有人提到关于
“这种相互继承通常是不可能的,但对于Python中的这些基本类型而言,它们打破了规则。”
我的问题是为什么要这样实现,这种实现的目的是什么?它解决了什么问题/设计的好处是什么?它不能只使用
type
和object
类时,我就迷失了。我知道它们处于层次结构的顶部,并且它们是用C代码实现的。我也明白
type
继承自object
,并且object
是type
的一个实例。在SO上我找到了答案之一,其中有人提到关于
object-type
关系的问题:“这种相互继承通常是不可能的,但对于Python中的这些基本类型而言,它们打破了规则。”
我的问题是为什么要这样实现,这种实现的目的是什么?它解决了什么问题/设计的好处是什么?它不能只使用
type
或只使用object
类作为层次结构的顶部,让每个类都继承它吗?
最后,从object
继承和从type
继承有什么区别?我应该在什么情况下使用其中之一?
class Foo(object):
pass
对比
class Foo(type):
pass
type
是 Python 中的基元类。 (每个类都是一个对象,而类的类是其元类。)除非您有意尝试创建元类,否则不应该对type
进行子类化。 - kindall