在Python中分为元类type和更低一级的类对象int,str,float......所有的非元类的自定义和
类和内部类都是由type类的实例,它们是用type()生成的对象,但是Python中一切皆是
对象,那么我很好奇这个标签是type的这个元类对象是怎么产生的呢? 一开始必须用
type()才能生成其他类对象,那么type这个对象本身是怎么产生的呢? 我是小白,网上
资料没有这方面的解释,求大神解答一下,可能我描述的很混乱,或者错误。请纠正!
类也是对象。type也是对象。最上面就是object
推荐一本书:《Python源码剖析》,其中第1章 Python对象初探。
至于你的问题,type这个元类对象是怎么产生的?对象是怎么产生的,它就是怎么产生的。对象你要一视同仁,在python中,对象就是C中的结构体在堆上申请的一块内存。
由于python里面一切皆对象,对每一个类型对象,它的类型都是PyType_Type。
正如,int的类型是PyInt_Type,而PyInt_Type的类型是PyType_Type;
PyTypeObject应该是所有类型的基类,但同时,它的类型就是PyType_Type;
而由于PyType_Type本身也是一种类型对象,所以它的类型也是PyType_Type。