实例、类与元类

类也是对象

在 Python 中,一切皆对象,类也是对象。

一个可以生成其它对象的对象。这就是 Python 中的类。

类这种对象的创建继承自「元类」,元类继承自自己,意思就是,元类的实例还是元类自己,元类的后辈是类。

元类也是对象,是一个实例等于自身的类对象。

这样就避免了鸡生蛋、蛋生鸡的无止尽循环:在最最开始的时候,有蛋鸡,也有鸡蛋,只是,鸡蛋 = 蛋鸡。后来,鸡生蛋,蛋生鸡,鸡是父辈,蛋是鸡的子辈,同时又是蛋蛋的父辈。

Python2 中的新式类和旧式类

由于 Python2.2 之后才引入「元类」,这导致了历史遗留问题:

之前 class 的创建继承自一个专有的 class 对象,之后的 class 可以继承自 type 元类。但是两者无法等价。只能通过显示继承 object 来创建新类,新类可以兼容旧式类,同时具备新功能。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。