我们已经知道在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我们称他为元类。
本文深入探讨了Python中对象的概念,解释了所有对象,包括基本类型如int和str,以及自定义类,都是由名为type的元类创建的。通过实例演示了如何使用__class__属性查询对象所属的类。

被折叠的 条评论
为什么被折叠?



