tipos str qué numeros letras imprimir hace función entrada datos convertir python attributes integer

str - tipos de variables en python



¿Dónde se almacena el valor int de una instancia int en Python? (1)

El valor entero real está en ob_ival . En esencia, int_int simplemente toma el valor entero de un objeto int y lo envuelve en otro objeto.

No estoy seguro de por qué no puedes ver las propiedades. Si ejecuto esto, aparecen para mí, en las versiones 2.7 y 3.4:

x = 8 dir(x)

EDITAR: Demasiado difícil de explicar en un comentario, por lo que se agrega a la respuesta.

Podría fácilmente subclasificarlo así:

class foo(int): def __getitem__(self): return self + 1 foo(8).__getitem__()

También puede usar super para acceder explícitamente al objeto int esta manera.

(Te das cuenta de que __getitem__ es para usar con objetos con clave [como, por ejemplo, dict] y por lo tanto, normalmente obtiene un segundo argumento que especifica la clave, ¿no es así? Y int y float no están codificados).

El tipo int en python ofrece dos atributos llamados numerator y real que tienen el mismo contenido que __int__() .

Como todos estos 3 valores devuelven el mismo atributo interno, creo que real es una propiedad como:

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

Sin embargo, no puedo encontrar este dir de propiedad oculto ni a = int(); a._int__<tab> a = int(); a._int__<tab> en IPython.

Así que miré el código fuente y encontré esto:

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 */ };

Y esto:

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

Pero esto es lo más lejos que puedo ir solo.

¿Dónde se almacena el valor real de un entero dentro de una instancia entera?

La razón principal de esta pregunta es que quiero extender el tipo de MyFloat float con un MyFloat en el que me gustaría referirme al valor de la instancia.