Objetos Enteros¶
Todos los enteros se implementan como objetos enteros «largos» (long) de tamaño arbitrario.
En caso de error, la mayoría de las API PyLong_As* retornan (tipo de retorno) -1 que no se puede distinguir de un número. Use PyErr_Occurred() para desambiguar.
-
PyTypeObject
PyLong_Type¶ Esta instancia de
PyTypeObjectrepresenta el tipo entero de Python. Este es el mismo objeto queinten la capa de Python.
-
int
PyLong_Check(PyObject *p)¶ Retorna verdadero si su argumento es un
PyLongObjecto un subtipo dePyLongObject. Esta función siempre finaliza con éxito.
-
int
PyLong_CheckExact(PyObject *p)¶ Retorna verdadero si su argumento es un
PyLongObject, pero no un subtipo dePyLongObject. Esta función siempre finaliza con éxito.
-
PyObject*
PyLong_FromLong(long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde v, oNULLen caso de error.The current implementation keeps an array of integer objects for all integers between
-5and256. When you create an int in that range you actually just get back a reference to the existing object.
-
PyObject*
PyLong_FromUnsignedLong(unsigned long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde un Cunsigned long, oNULLen caso de error.
-
PyObject*
PyLong_FromSsize_t(Py_ssize_t v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde un CPy_ssize_t, oNULLen caso de error.
-
PyObject*
PyLong_FromSize_t(size_t v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde un Csize_t, oNULLen caso de error.
-
PyObject*
PyLong_FromLongLong(long long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde un Clong long, oNULLen caso de error.
-
PyObject*
PyLong_FromUnsignedLongLong(unsigned long long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObjectnuevo desde un Cunsigned long long, oNULLen caso de error.
-
PyObject*
PyLong_FromDouble(double v)¶ - Return value: New reference.
Retorna un nuevo objeto
PyLongObjectde la parte entera de v, oNULLen caso de error.
-
PyObject*
PyLong_FromString(const char *str, char **pend, int base)¶ - Return value: New reference.
Retorna un nuevo
PyLongObjectbasado en el valor de cadena de caracteres en str, que se interpreta de acuerdo con la raíz en base. Si pend no esNULL, * pend apuntará al primer carácter en str que sigue a la representación del número. Si base es0, str se interpreta utilizando la definición Literales enteros; en este caso, los ceros a la izquierda en un número decimal distinto de cero lanzan unValueError. Si base no es0, debe estar entre2y36, inclusive. Se ignoran los espacios iniciales y los guiones bajos individuales después de un especificador base y entre dígitos. Si no hay dígitos, se lanzaráValueError.
-
PyObject*
PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)¶ - Return value: New reference.
Convierte una secuencia de dígitos Unicode en un valor entero de Python.
Deprecated since version 3.3, will be removed in version 3.10: Parte de la API de viejo estilo
Py_UNICODE; por favor migrar para usarPyLong_FromUnicodeObject().
-
PyObject*
PyLong_FromUnicodeObject(PyObject *u, int base)¶ - Return value: New reference.
Convierte una secuencia de dígitos Unicode en la cadena de caracteres u en un valor entero de Python.
Nuevo en la versión 3.3.
-
PyObject*
PyLong_FromVoidPtr(void *p)¶ - Return value: New reference.
Crea un entero de Python desde el puntero p. El valor del puntero se puede recuperar del valor resultante usando
PyLong_AsVoidPtr().
-
long
PyLong_AsLong(PyObject *obj)¶ Retorna una representación de C
longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Lanza
OverflowErrorsi el valor de obj está fuera de rango para unlong.Retorna
-1en caso de error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
long
PyLong_AsLongAndOverflow(PyObject *obj, int *overflow)¶ Retorna una representación de C
longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Si el valor de obj es mayor que
LONG_MAXo menor queLONG_MIN, establece *overflow * en ``1`` o ``-1``, respectivamente, y retorna ``-1``; de lo contrario, establece **overflow en0. Si se produce alguna otra excepción, configura *overflow en0y retorna-1como de costumbre.Retorna
-1en caso de error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
long long
PyLong_AsLongLong(PyObject *obj)¶ Retorna una representación de C
long longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Lanza
OverflowErrorsi el valor de obj está fuera de rango para unlong long.Retorna
-1en caso de error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
long long
PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow)¶ Retorna una representación de C
long longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Si el valor de obj es mayor que
LLONG_MAXo menor queLLONG_MIN, establece *overflow en1o-1, respectivamente, y retorna-1; de lo contrario, establece *overflow en0. Si se produce alguna otra excepción, configura *overflow en0y retorna-1como de costumbre.Retorna
-1en caso de error. UsePyErr_Occurred()para desambiguar.Nuevo en la versión 3.2.
Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
Py_ssize_t
PyLong_AsSsize_t(PyObject *pylong)¶ Retorna una representación de C
Py_ssize_tde pylong. pylong debe ser una instancia dePyLongObject.Lanza
OverflowErrorsi el valor de pylong está fuera de rango para unPy_ssize_t.Retorna
-1en caso de error. UsePyErr_Occurred()para desambiguar.
-
unsigned long
PyLong_AsUnsignedLong(PyObject *pylong)¶ Retorna una representación de C
unsigned longde pylong. pylong debe ser una instancia dePyLongObject.Lanza
OverflowErrorsi el valor de pylong está fuera de rango para ununsigned long.Retorna
(unsigned long)-1en caso de error. UsePyErr_Occurred()para desambiguar.
-
size_t
PyLong_AsSize_t(PyObject *pylong)¶ Retorna una representación de C
size_tde pylong. pylong debe ser una instancia dePyLongObject.Lanza
OverflowErrorsi el valor de pylong está fuera de rango para unsize_t.Retorna
(size_t) -1en caso de error. UsePyErr_Occurred()para desambiguar.
-
unsigned long long
PyLong_AsUnsignedLongLong(PyObject *pylong)¶ Retorna una representación de C
unsigned long longde pylong. pylong debe ser una instancia dePyLongObject.Lanza
OverflowErrorsi el valor de pylong está fuera de rango para ununsigned long long.Retorna
(unsigned long long) -1en caso de error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.1: Ahora un pylong negativo lanza un
OverflowError, noTypeError.
-
unsigned long
PyLong_AsUnsignedLongMask(PyObject *obj)¶ Retorna una representación de C
unsigned longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Si el valor de obj está fuera del rango para
unsigned long, retorna la reducción de ese valor móduloULONG_MAX + 1.Retorna
(unsigned long)-1en caso de error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
unsigned long long
PyLong_AsUnsignedLongLongMask(PyObject *obj)¶ Retorna una representación de C
unsigned long longde obj. Si obj no es una instancia dePyLongObject, primero llama a su método__index__()o__int__()(si está presente) para convertirlo en unPyLongObject.Si el valor de obj está fuera del rango para
unsigned long long, retorna la reducción de ese valor móduloULLONG_MAX + 1.Retorna
(unsigned long long) -1por error. UsePyErr_Occurred()para desambiguar.Distinto en la versión 3.8: Use
__index__()si está disponible.Obsoleto desde la versión 3.8: Usar
__int__()está deprecado.
-
double
PyLong_AsDouble(PyObject *pylong)¶ Retorna una representación de C
doublede pylong. pylong debe ser una instancia dePyLongObject.Lanza
OverflowErrorsi el valor de pylong está fuera de rango para undouble.Retorna
-1.0en caso de error. UsePyErr_Occurred()para desambiguar.
-
void*
PyLong_AsVoidPtr(PyObject *pylong)¶ Convierte un entero Python pylong en un puntero C
void. Si pylong no se puede convertir, se generará unOverflowError. Esto solo se garantiza para producir un puntero utilizablevoidpara valores creados conPyLong_FromVoidPtr().Retorna
NULLen caso de error. UsePyErr_Occurred()para desambiguar.