Где хранится значение 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
где я хотел бы сослаться на значение экземпляра.