how does Cpython implement its type Objects, i.e. type's type is always type?
I understand that everything in python is an Object and that the 'type' (or class) of these object is 'type'. Plus the type of type is also type itself. (as explained nicely here ) What I do not understand is how is this circular reference implemented? So i looked here . To quote the portion which might explain what I am looking for: PyTypeObject* PyObject.ob_type This is the type’s type, in other words its metatype. It is initialized by the argument to the PyObject_HEAD_INIT macro, and its value should normally be &PyType_Type. However, for dynamically loadable extension modules that must be