草庐IT

PyIntObject

全部标签

python - Python 源代码 "free_list = (PyIntObject *)Py_TYPE(v);"如何将指针 free_list 移动到下一个对象?

在python源码中,int对象的创建方法PyInt_FromLong,python在free_list的第一个元素指向的位置创建一个新的PyIntObject。这是代码:PyObject*PyInt_FromLong(longival){registerPyIntObject*v;#ifNSMALLNEGINTS+NSMALLPOSINTS>0if(-NSMALLNEGINTSob_ival=ival;return(PyObject*)v;}Py_TYPE是:#definePy_TYPE(ob)(((PyObject*)(ob))->ob_type)free_list=(PyIntO