Где хранится значение int экземпляра int в Python?

int Тип в Python предлагает два атрибута с именемnumerator а такжеreal которые имеют тот же контент, что и__int__().

Поскольку все эти 3 значения возвращают один и тот же внутренний атрибут, я думаю,real это свойство как:

@property
def real(self):
   return self.__int

Однако я не могу найти это скрытое свойство dirdir или другоеa = int(); a._int__<tab> в IPython.

Итак, я посмотрел наисходный код и нашел это:

static PyGetSetDef int_getset[] = {
    {"real",
     (getter)int_int, (setter)NULL,
     "the real part of a complex number",
     NULL},
    {"imag",
     (getter)int_get0, (setter)NULL,
     "the imaginary part of a complex number",
     NULL},
    {"numerator",
     (getter)int_int, (setter)NULL,
     "the numerator of a rational number in lowest terms",
     NULL},
    {"denominator",
     (getter)int_get1, (setter)NULL,
     "the denominator of a rational number in lowest terms",
     NULL},
    {NULL}  /* Sentinel */
};

И это:

static PyObject *
int_int(PyIntObject *v)
{
    if (PyInt_CheckExact(v))
        Py_INCREF(v);
    else
        v = (PyIntObject *)PyInt_FromLong(v->ob_ival);
    return (PyObject *)v;
}

Но это самое дальнее, что я могу пройти сам.

Где фактическое значение целого числа хранится внутри целочисленного экземпляра?

Основной причиной этого вопроса является то, что я хочу расширитьfloat введите сMyFloat где я хотел бы сослаться на значение экземпляра.

Ответы на вопрос(1)

Ваш ответ на вопрос