根据Python对象模型,类是对象,因此类肯定是另外某个类的实例。默认情况下,Python中的类是type类的实例。也就是说,type是大多数内置的类和用户定义的类的元类。为了避免无限回溯,type是其自身的实例。
object类和type类之间的关系很独特:object是type的实例,而type是object的子类。所有的类都直接或间接地是type的实例,不过只是元类同时也是type的子类。若想理解子类,一定要知道这种关系:元类从type类继承了构建类的能力。
元类可以定制类的层次结构(也就是其子类也会受到影响)。类装饰器不同,它只能影响一个类。