我们已经知道在Python里面,万物皆是对象。所以我们用class创建的一个类,在本质上也是一个对象,那么创建这个类对象的类是谁?
num=10
string="abcde" #以上都可以看做是对象
class Person:
pass
p=Person()
#查询一个对象所属的类通过__class__去查询
print(num.__class__) #显示出int
print(string.__class__) #显示出str
print(p.__class__) #显示出Person
#在对int、str和Person查询他们的类
print(int.__class__)
print(str.__class__)
print(Person.__int__) #都显示出type这个类
#那么type又是谁创建出来的呢?
print(type.__class__) #依旧显示出是type
上述实验显示出所有的对象都是由一个叫type的类所创建的(包括type自己),只不过type创建的一些对象有实例化的本领,而有些没有。
对于type我们称他为元类。