Wo wird der int-Wert einer int-Instanz in Python gespeichert?
Dasint
Typ in Python bietet zwei Attribute mit dem Namennumerator
undreal
die den gleichen Inhalt haben wie__int__()
.
Da alle diese 3 Werte dasselbe interne Attribut zurückgeben, denke ich,real
ist eine Eigenschaft wie:
@property
def real(self):
return self.__int
Allerdings kann ich diese versteckte Eigenschaft dir nicht findendir
oder aucha = int(); a._int__<tab>
in IPython.
lso habe ich mir das @ angeschaQuellcod und fand dies:
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 */
};
Und das
static PyObject *
int_int(PyIntObject *v)
{
if (PyInt_CheckExact(v))
Py_INCREF(v);
else
v = (PyIntObject *)PyInt_FromLong(v->ob_ival);
return (PyObject *)v;
}
Aber das ist das weiteste, was ich alleine machen kann.
Wo wird der tatsächliche Wert einer Ganzzahl in einer Ganzzahlinstanz gespeichert?
Der Hauptgrund für diese Frage ist, dass ich das @ verlängern möchfloat
tippe mit einemMyFloat
wo ich mich auf den Wert der Instanz beziehen möchte.