UserString.MutableString has been removed in Python 3.0.
[python.git] / Doc / c-api / long.rst
blob57015dbd85eb6b183b255c12a87fc30bc7f64946
1 .. highlightlang:: c
3 .. _longobjects:
5 Long Integer Objects
6 --------------------
8 .. index:: object: long integer
11 .. ctype:: PyLongObject
13    This subtype of :ctype:`PyObject` represents a Python long integer object.
16 .. cvar:: PyTypeObject PyLong_Type
18    .. index:: single: LongType (in modules types)
20    This instance of :ctype:`PyTypeObject` represents the Python long integer type.
21    This is the same object as ``long`` and ``types.LongType``.
24 .. cfunction:: int PyLong_Check(PyObject *p)
26    Return true if its argument is a :ctype:`PyLongObject` or a subtype of
27    :ctype:`PyLongObject`.
29    .. versionchanged:: 2.2
30       Allowed subtypes to be accepted.
33 .. cfunction:: int PyLong_CheckExact(PyObject *p)
35    Return true if its argument is a :ctype:`PyLongObject`, but not a subtype of
36    :ctype:`PyLongObject`.
38    .. versionadded:: 2.2
41 .. cfunction:: PyObject* PyLong_FromLong(long v)
43    Return a new :ctype:`PyLongObject` object from *v*, or *NULL* on failure.
46 .. cfunction:: PyObject* PyLong_FromUnsignedLong(unsigned long v)
48    Return a new :ctype:`PyLongObject` object from a C :ctype:`unsigned long`, or
49    *NULL* on failure.
52 .. cfunction:: PyObject* PyLong_FromSsize_t(Py_ssize_t v)
54    Return a new :ctype:`PyLongObject` object from a C :ctype:`Py_ssize_t`, or
55    *NULL* on failure.
57    .. versionadded:: 2.5
60 .. cfunction:: PyObject* PyLong_FromSize_t(size_t v)
62    Return a new :ctype:`PyLongObject` object from a C :ctype:`size_t`, or
63    *NULL* on failure.
65    .. versionadded:: 2.5
68 .. cfunction:: PyObject* PyLong_FromLongLong(PY_LONG_LONG v)
70    Return a new :ctype:`PyLongObject` object from a C :ctype:`long long`, or *NULL*
71    on failure.
74 .. cfunction:: PyObject* PyLong_FromUnsignedLongLong(unsigned PY_LONG_LONG v)
76    Return a new :ctype:`PyLongObject` object from a C :ctype:`unsigned long long`,
77    or *NULL* on failure.
80 .. cfunction:: PyObject* PyLong_FromDouble(double v)
82    Return a new :ctype:`PyLongObject` object from the integer part of *v*, or
83    *NULL* on failure.
86 .. cfunction:: PyObject* PyLong_FromString(char *str, char **pend, int base)
88    Return a new :ctype:`PyLongObject` based on the string value in *str*, which is
89    interpreted according to the radix in *base*.  If *pend* is non-*NULL*,
90    ``*pend`` will point to the first character in *str* which follows the
91    representation of the number.  If *base* is ``0``, the radix will be determined
92    based on the leading characters of *str*: if *str* starts with ``'0x'`` or
93    ``'0X'``, radix 16 will be used; if *str* starts with ``'0'``, radix 8 will be
94    used; otherwise radix 10 will be used.  If *base* is not ``0``, it must be
95    between ``2`` and ``36``, inclusive.  Leading spaces are ignored.  If there are
96    no digits, :exc:`ValueError` will be raised.
99 .. cfunction:: PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)
101    Convert a sequence of Unicode digits to a Python long integer value.  The first
102    parameter, *u*, points to the first character of the Unicode string, *length*
103    gives the number of characters, and *base* is the radix for the conversion.  The
104    radix must be in the range [2, 36]; if it is out of range, :exc:`ValueError`
105    will be raised.
107    .. versionadded:: 1.6
110 .. cfunction:: PyObject* PyLong_FromVoidPtr(void *p)
112    Create a Python integer or long integer from the pointer *p*. The pointer value
113    can be retrieved from the resulting value using :cfunc:`PyLong_AsVoidPtr`.
115    .. versionadded:: 1.5.2
117    .. versionchanged:: 2.5
118       If the integer is larger than LONG_MAX, a positive long integer is returned.
121 .. cfunction:: long PyLong_AsLong(PyObject *pylong)
123    .. index::
124       single: LONG_MAX
125       single: OverflowError (built-in exception)
127    Return a C :ctype:`long` representation of the contents of *pylong*.  If
128    *pylong* is greater than :const:`LONG_MAX`, an :exc:`OverflowError` is raised
129    and ``-1`` will be returned. 
132 .. cfunction:: Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)
134    .. index::
135       single: PY_SSIZE_T_MAX
136       single: OverflowError (built-in exception)
138    Return a C :ctype:`Py_ssize_t` representation of the contents of *pylong*.  If
139    *pylong* is greater than :const:`PY_SSIZE_T_MAX`, an :exc:`OverflowError` is raised
140    and ``-1`` will be returned.
142    .. versionadded:: 2.5
145 .. cfunction:: unsigned long PyLong_AsUnsignedLong(PyObject *pylong)
147    .. index::
148       single: ULONG_MAX
149       single: OverflowError (built-in exception)
151    Return a C :ctype:`unsigned long` representation of the contents of *pylong*.
152    If *pylong* is greater than :const:`ULONG_MAX`, an :exc:`OverflowError` is
153    raised.
156 .. cfunction:: PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)
158    Return a C :ctype:`long long` from a Python long integer.  If *pylong* cannot be
159    represented as a :ctype:`long long`, an :exc:`OverflowError` will be raised.
161    .. versionadded:: 2.2
164 .. cfunction:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)
166    Return a C :ctype:`unsigned long long` from a Python long integer. If *pylong*
167    cannot be represented as an :ctype:`unsigned long long`, an :exc:`OverflowError`
168    will be raised if the value is positive, or a :exc:`TypeError` will be raised if
169    the value is negative.
171    .. versionadded:: 2.2
174 .. cfunction:: unsigned long PyLong_AsUnsignedLongMask(PyObject *io)
176    Return a C :ctype:`unsigned long` from a Python long integer, without checking
177    for overflow.
179    .. versionadded:: 2.3
182 .. cfunction:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *io)
184    Return a C :ctype:`unsigned long long` from a Python long integer, without
185    checking for overflow.
187    .. versionadded:: 2.3
190 .. cfunction:: double PyLong_AsDouble(PyObject *pylong)
192    Return a C :ctype:`double` representation of the contents of *pylong*.  If
193    *pylong* cannot be approximately represented as a :ctype:`double`, an
194    :exc:`OverflowError` exception is raised and ``-1.0`` will be returned.
197 .. cfunction:: void* PyLong_AsVoidPtr(PyObject *pylong)
199    Convert a Python integer or long integer *pylong* to a C :ctype:`void` pointer.
200    If *pylong* cannot be converted, an :exc:`OverflowError` will be raised.  This
201    is only assured to produce a usable :ctype:`void` pointer for values created
202    with :cfunc:`PyLong_FromVoidPtr`.
204    .. versionadded:: 1.5.2
206    .. versionchanged:: 2.5
207       For values outside 0..LONG_MAX, both signed and unsigned integers are accepted.