7.2.2 Long Integer Objects

`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`types.LongType`

.

int (`PyLong_Check`PyObject * `p`)-
Returns true if its argument is a
`PyLongObject`or a subtype of`PyLongObject`. Changed in version 2.2: Allowed subtypes to be accepted.

int (`PyLong_CheckExact`PyObject * `p`)-
Returns true if its argument is a
`PyLongObject`, but not a subtype of`PyLongObject`. New in version 2.2.

PyObject* (`PyLong_FromLong`long `v`)-
Return value: New reference.Returns a new
`PyLongObject`object from`v`, or`NULL`on failure.

PyObject* (`PyLong_FromUnsignedLong`unsigned long `v`)-
Return value: New reference.Returns a new
`PyLongObject`object from a C`unsigned long`, or`NULL`on failure.

PyObject* (`PyLong_FromLongLong`long long `v`)-
Return value: New reference.Returns a new
`PyLongObject`object from a C`long long`, or`NULL`on failure.

PyObject* (`PyLong_FromUnsignedLongLong`unsigned long long `v`)-
Return value: New reference.Returns a new
`PyLongObject`object from a C`unsigned long long`, or`NULL`on failure.

PyObject* (`PyLong_FromDouble`double `v`)-
Return value: New reference.Returns 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`,`*`

will point to the first character in`pend``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`, int`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,`ValueError`will be raised. New in version 1.6.

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.

long (`PyLong_AsLong`PyObject * `pylong`)-
Returns a C
`long`representation of the contents of`pylong`. If`pylong`is greater than`LONG_MAX`an`OverflowError`is raised.

unsigned long (`PyLong_AsUnsignedLong`PyObject * `pylong`)-
Returns a C
`unsigned long`representation of the contents of`pylong`. If`pylong`is greater than`ULONG_MAX`an`OverflowError`is raised.

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`, an`OverflowError`will be raised. New in version 2.2.

unsigned 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`, an`OverflowError`will be raised if the value is positive, or a`TypeError`will be raised if the value is negative. 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. New in version 2.3.

unsigned long (`PyLong_AsUnsignedLongLongMask`PyObject * `io`)-
Return a C
`unsigned long long`from a Python long integer, without checking for overflow. New in version 2.3.

double (`PyLong_AsDouble`PyObject * `pylong`)-
Returns a C
`double`representation of the contents of`pylong`. If`pylong`cannot be approximately represented as a`double`, an`OverflowError`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.

See