Long Integer Objects — Python 2.7.18 documentation (original) (raw)
PyLongObject
¶
This subtype of PyObject represents a Python long integer object.
PyTypeObject PyLong_Type
¶
This instance of PyTypeObject represents the Python long integer type. This is the same object as long
and types.LongType
.
int PyLong_Check
(PyObject *p)¶
Return true if its argument is a PyLongObject or a subtype ofPyLongObject.
Changed in version 2.2: Allowed subtypes to be accepted.
int PyLong_CheckExact
(PyObject *p)¶
Return true if its argument is a PyLongObject, but not a subtype ofPyLongObject.
New in version 2.2.
PyObject* PyLong_FromLong
(long v)¶
Return value: New reference.
Return a new PyLongObject object from v, or NULL on failure.
PyObject* PyLong_FromUnsignedLong
(unsigned long v)¶
Return value: New reference.
Return a new PyLongObject object from a C unsigned long
, or_NULL_ on failure.
PyObject* PyLong_FromSsize_t
(Py_ssize_t v)¶
Return value: New reference.
Return a new PyLongObject object from a C Py_ssize_t
, or_NULL_ on failure.
New in version 2.6.
PyObject* PyLong_FromSize_t
(size_t v)¶
Return value: New reference.
Return a new PyLongObject object from a C size_t
, or_NULL_ on failure.
New in version 2.6.
PyObject* PyLong_FromLongLong
(PY_LONG_LONG v)¶
Return value: New reference.
Return a new PyLongObject object from a C long long
, or _NULL_on failure.
PyObject* PyLong_FromUnsignedLongLong
(unsigned PY_LONG_LONG v)¶
Return value: New reference.
Return a new PyLongObject object from a C unsigned long long
, or NULL on failure.
PyObject* PyLong_FromDouble
(double v)¶
Return value: New reference.
Return a new PyLongObject object from the integer part of v, or_NULL_ on failure.
PyObject* PyLong_FromString
(char *str, char **pend, int base)¶
Return value: New reference.
Return a new PyLongObject based on the string value in str, which is interpreted according to the radix in base. If pend is non-NULL,*pend will point to the first character in str which follows the representation of the number. If base is 0
, the radix will be determined based on the leading characters of str: if str starts with '0x'
or'0X'
, radix 16 will be used; if str starts with '0'
, radix 8 will be used; otherwise radix 10 will be used. If base is not 0
, it must be between 2
and 36
, inclusive. Leading spaces are ignored. If there are no digits, ValueError will be raised.
PyObject* PyLong_FromUnicode
(Py_UNICODE *u, Py_ssize_t length, int base)¶
Return value: New reference.
Convert a sequence of Unicode digits to a Python long integer value. The first parameter, u, points to the first character of the Unicode string, _length_gives the number of characters, and base is the radix for the conversion. The radix must be in the range [2, 36]; if it is out of range, ValueErrorwill be raised.
New in version 1.6.
Changed in version 2.5: This function used an int
for length. This might require changes in your code for properly supporting 64-bit systems.
PyObject* PyLong_FromVoidPtr
(void *p)¶
Return value: New reference.
Create a Python integer or long integer from the pointer p. The pointer value can be retrieved from the resulting value using PyLong_AsVoidPtr().
New in version 1.5.2.
Changed in version 2.5: If the integer is larger than LONG_MAX, a positive long integer is returned.
long PyLong_AsLong
(PyObject *pylong)¶
Return a C long
representation of the contents of pylong. If_pylong_ is greater than LONG_MAX
, an OverflowError is raised and -1
will be returned.
long PyLong_AsLongAndOverflow
(PyObject *pylong, int *overflow)¶
Return a C long
representation of the contents of_pylong_. If pylong is greater than LONG_MAX
or less than LONG_MIN
, set *overflow to 1
or -1
, respectively, and return -1
; otherwise, set *overflow to0
. If any other exception occurs (for example a TypeError or MemoryError), then -1
will be returned and *overflow will be 0
.
New in version 2.7.
PY_LONG_LONG PyLong_AsLongLongAndOverflow
(PyObject *pylong, int *overflow)¶
Return a C long long
representation of the contents of_pylong_. If pylong is greater than PY_LLONG_MAX
or less than PY_LLONG_MIN
, set *overflow to 1
or -1
, respectively, and return -1
; otherwise, set *overflow to0
. If any other exception occurs (for example a TypeError or MemoryError), then -1
will be returned and *overflow will be 0
.
New in version 2.7.
Py_ssize_t PyLong_AsSsize_t
(PyObject *pylong)¶
Return a C Py_ssize_t
representation of the contents of pylong. If_pylong_ is greater than PY_SSIZE_T_MAX
, an OverflowError is raised and -1
will be returned.
New in version 2.6.
unsigned long PyLong_AsUnsignedLong
(PyObject *pylong)¶
Return a C unsigned long
representation of the contents of pylong. If pylong is greater than ULONG_MAX
, an OverflowError is raised.
PY_LONG_LONG PyLong_AsLongLong
(PyObject *pylong)¶
Return a C long long
from a Python long integer. If_pylong_ cannot be represented as a long long
, anOverflowError is raised and -1
is returned.
New in version 2.2.
unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong
(PyObject *pylong)¶
Return a C unsigned long long
from a Python long integer. If_pylong_ cannot be represented as an unsigned long long
, anOverflowError is raised and (unsigned long long)-1
is returned.
New in version 2.2.
unsigned long PyLong_AsUnsignedLongMask
(PyObject *io)¶
Return a C unsigned long
from a Python long integer, without checking for overflow.
Returns (unsigned long)-1
on error. Use PyErr_Occurred() to disambiguate.
New in version 2.3.
unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask
(PyObject *io)¶
Return a C unsigned long long
from a Python long integer, without checking for overflow.
Returns (unsigned PY_LONG_LONG)-1
on error. UsePyErr_Occurred() to disambiguate.
New in version 2.3.
double PyLong_AsDouble
(PyObject *pylong)¶
Return a C double
representation of the contents of pylong. If_pylong_ cannot be approximately represented as a double
, anOverflowError exception is raised and -1.0
will be returned.
void* PyLong_AsVoidPtr
(PyObject *pylong)¶
Convert a Python integer or long integer pylong to a C void
pointer. If pylong cannot be converted, an OverflowError will be raised. This is only assured to produce a usable void
pointer for values created with PyLong_FromVoidPtr().
New in version 1.5.2.
Changed in version 2.5: For values outside 0..LONG_MAX, both signed and unsigned integers are accepted.