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
PyTypeObject
representa el tipo entero de Python. Este es el mismo objeto queint
en la capa de Python.
-
int
PyLong_Check
(PyObject *p)¶ Retorna verdadero si su argumento es un
PyLongObject
o 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
PyLongObject
nuevo desde v, oNULL
en caso de error.The current implementation keeps an array of integer objects for all integers between
-5
and256
. 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
PyLongObject
nuevo desde un Cunsigned long
, oNULL
en caso de error.
-
PyObject*
PyLong_FromSsize_t
(Py_ssize_t v)¶ - Return value: New reference.
Retorna un objeto
PyLongObject
nuevo desde un CPy_ssize_t
, oNULL
en caso de error.
-
PyObject*
PyLong_FromSize_t
(size_t v)¶ - Return value: New reference.
Retorna un objeto
PyLongObject
nuevo desde un Csize_t
, oNULL
en caso de error.
-
PyObject*
PyLong_FromLongLong
(long long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObject
nuevo desde un Clong long
, oNULL
en caso de error.
-
PyObject*
PyLong_FromUnsignedLongLong
(unsigned long long v)¶ - Return value: New reference.
Retorna un objeto
PyLongObject
nuevo desde un Cunsigned long long
, oNULL
en caso de error.
-
PyObject*
PyLong_FromDouble
(double v)¶ - Return value: New reference.
Retorna un nuevo objeto
PyLongObject
de la parte entera de v, oNULL
en caso de error.
-
PyObject*
PyLong_FromString
(const char *str, char **pend, int base)¶ - Return value: New reference.
Retorna un nuevo
PyLongObject
basado 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 entre2
y36
, 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
long
de 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
OverflowError
si el valor de obj está fuera de rango para unlong
.Retorna
-1
en 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
long
de 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_MAX
o 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 en0
y retorna-1
como de costumbre.Retorna
-1
en 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 long
de 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
OverflowError
si el valor de obj está fuera de rango para unlong long
.Retorna
-1
en 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 long
de 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_MAX
o menor queLLONG_MIN
, establece *overflow en1
o-1
, respectivamente, y retorna-1
; de lo contrario, establece *overflow en0
. Si se produce alguna otra excepción, configura *overflow en0
y retorna-1
como de costumbre.Retorna
-1
en 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_t
de pylong. pylong debe ser una instancia dePyLongObject
.Lanza
OverflowError
si el valor de pylong está fuera de rango para unPy_ssize_t
.Retorna
-1
en caso de error. UsePyErr_Occurred()
para desambiguar.
-
unsigned long
PyLong_AsUnsignedLong
(PyObject *pylong)¶ Retorna una representación de C
unsigned long
de pylong. pylong debe ser una instancia dePyLongObject
.Lanza
OverflowError
si el valor de pylong está fuera de rango para ununsigned long
.Retorna
(unsigned long)-1
en caso de error. UsePyErr_Occurred()
para desambiguar.
-
size_t
PyLong_AsSize_t
(PyObject *pylong)¶ Retorna una representación de C
size_t
de pylong. pylong debe ser una instancia dePyLongObject
.Lanza
OverflowError
si el valor de pylong está fuera de rango para unsize_t
.Retorna
(size_t) -1
en caso de error. UsePyErr_Occurred()
para desambiguar.
-
unsigned long long
PyLong_AsUnsignedLongLong
(PyObject *pylong)¶ Retorna una representación de C
unsigned long long
de pylong. pylong debe ser una instancia dePyLongObject
.Lanza
OverflowError
si el valor de pylong está fuera de rango para ununsigned long long
.Retorna
(unsigned long long) -1
en 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 long
de 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)-1
en 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 long
de 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) -1
por 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
double
de pylong. pylong debe ser una instancia dePyLongObject
.Lanza
OverflowError
si el valor de pylong está fuera de rango para undouble
.Retorna
-1.0
en 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 utilizablevoid
para valores creados conPyLong_FromVoidPtr()
.Retorna
NULL
en caso de error. UsePyErr_Occurred()
para desambiguar.