在下这厢有礼了
Python中的整数对象
intobject.c
static int int_compare(PyIntObject *v,PyIntObject *w)
{
register long i=v->ob_ival;
register long j=w->ob_ival;
return (i<j)? -1:(i>j) ? 1:0;
}
PyIntObject对象的创建和维护
小整数对象池的初始化
intobject.c
int _PyInt_Init(void)
{
PyIntObject* v;
int ival;
#if NSMALLNEGINTS + NSMALLPOSINTS>0
for (ival = -NSMALLNEGINTS; ival < NSMALLPOSINTS; ival++)
{
if(!free_list && (free_list = fill_free_list())==NULL)
return 0;
//内联(inline PyObject_new的行为)
v = free_list;
free_list = (PyIntObject *)v->ob_type;
PyObject_INIT(v,&PyInt_Type);
v->ob_ival = ival;
small_ints[ival + NSMALLPOSINTS] =v;
}
#endif
return 1;
}
第三天过去了