[2] | 1 | .. highlightlang:: c
|
---|
| 2 |
|
---|
| 3 | .. _intobjects:
|
---|
| 4 |
|
---|
| 5 | Plain Integer Objects
|
---|
| 6 | ---------------------
|
---|
| 7 |
|
---|
| 8 | .. index:: object: integer
|
---|
| 9 |
|
---|
| 10 |
|
---|
[391] | 11 | .. c:type:: PyIntObject
|
---|
[2] | 12 |
|
---|
[391] | 13 | This subtype of :c:type:`PyObject` represents a Python integer object.
|
---|
[2] | 14 |
|
---|
| 15 |
|
---|
[391] | 16 | .. c:var:: PyTypeObject PyInt_Type
|
---|
[2] | 17 |
|
---|
| 18 | .. index:: single: IntType (in modules types)
|
---|
| 19 |
|
---|
[391] | 20 | This instance of :c:type:`PyTypeObject` represents the Python plain integer type.
|
---|
[2] | 21 | This is the same object as ``int`` and ``types.IntType``.
|
---|
| 22 |
|
---|
| 23 |
|
---|
[391] | 24 | .. c:function:: int PyInt_Check(PyObject *o)
|
---|
[2] | 25 |
|
---|
[391] | 26 | Return true if *o* is of type :c:data:`PyInt_Type` or a subtype of
|
---|
| 27 | :c:data:`PyInt_Type`.
|
---|
[2] | 28 |
|
---|
| 29 | .. versionchanged:: 2.2
|
---|
| 30 | Allowed subtypes to be accepted.
|
---|
| 31 |
|
---|
| 32 |
|
---|
[391] | 33 | .. c:function:: int PyInt_CheckExact(PyObject *o)
|
---|
[2] | 34 |
|
---|
[391] | 35 | Return true if *o* is of type :c:data:`PyInt_Type`, but not a subtype of
|
---|
| 36 | :c:data:`PyInt_Type`.
|
---|
[2] | 37 |
|
---|
| 38 | .. versionadded:: 2.2
|
---|
| 39 |
|
---|
| 40 |
|
---|
[391] | 41 | .. c:function:: PyObject* PyInt_FromString(char *str, char **pend, int base)
|
---|
[2] | 42 |
|
---|
[391] | 43 | Return a new :c:type:`PyIntObject` or :c:type:`PyLongObject` based on the string
|
---|
[2] | 44 | value in *str*, which is interpreted according to the radix in *base*. If
|
---|
| 45 | *pend* is non-*NULL*, ``*pend`` will point to the first character in *str* which
|
---|
| 46 | follows the representation of the number. If *base* is ``0``, the radix will be
|
---|
| 47 | determined based on the leading characters of *str*: if *str* starts with
|
---|
| 48 | ``'0x'`` or ``'0X'``, radix 16 will be used; if *str* starts with ``'0'``, radix
|
---|
| 49 | 8 will be used; otherwise radix 10 will be used. If *base* is not ``0``, it
|
---|
| 50 | must be between ``2`` and ``36``, inclusive. Leading spaces are ignored. If
|
---|
| 51 | there are no digits, :exc:`ValueError` will be raised. If the string represents
|
---|
[391] | 52 | a number too large to be contained within the machine's :c:type:`long int` type
|
---|
| 53 | and overflow warnings are being suppressed, a :c:type:`PyLongObject` will be
|
---|
[2] | 54 | returned. If overflow warnings are not being suppressed, *NULL* will be
|
---|
| 55 | returned in this case.
|
---|
| 56 |
|
---|
| 57 |
|
---|
[391] | 58 | .. c:function:: PyObject* PyInt_FromLong(long ival)
|
---|
[2] | 59 |
|
---|
| 60 | Create a new integer object with a value of *ival*.
|
---|
| 61 |
|
---|
| 62 | The current implementation keeps an array of integer objects for all integers
|
---|
| 63 | between ``-5`` and ``256``, when you create an int in that range you actually
|
---|
| 64 | just get back a reference to the existing object. So it should be possible to
|
---|
| 65 | change the value of ``1``. I suspect the behaviour of Python in this case is
|
---|
| 66 | undefined. :-)
|
---|
| 67 |
|
---|
| 68 |
|
---|
[391] | 69 | .. c:function:: PyObject* PyInt_FromSsize_t(Py_ssize_t ival)
|
---|
[2] | 70 |
|
---|
| 71 | Create a new integer object with a value of *ival*. If the value is larger
|
---|
| 72 | than ``LONG_MAX`` or smaller than ``LONG_MIN``, a long integer object is
|
---|
| 73 | returned.
|
---|
| 74 |
|
---|
| 75 | .. versionadded:: 2.5
|
---|
| 76 |
|
---|
| 77 |
|
---|
[391] | 78 | .. c:function:: PyObject* PyInt_FromSize_t(size_t ival)
|
---|
[2] | 79 |
|
---|
| 80 | Create a new integer object with a value of *ival*. If the value exceeds
|
---|
| 81 | ``LONG_MAX``, a long integer object is returned.
|
---|
| 82 |
|
---|
| 83 | .. versionadded:: 2.5
|
---|
| 84 |
|
---|
| 85 |
|
---|
[391] | 86 | .. c:function:: long PyInt_AsLong(PyObject *io)
|
---|
[2] | 87 |
|
---|
[391] | 88 | Will first attempt to cast the object to a :c:type:`PyIntObject`, if it is not
|
---|
[2] | 89 | already one, and then return its value. If there is an error, ``-1`` is
|
---|
| 90 | returned, and the caller should check ``PyErr_Occurred()`` to find out whether
|
---|
| 91 | there was an error, or whether the value just happened to be -1.
|
---|
| 92 |
|
---|
| 93 |
|
---|
[391] | 94 | .. c:function:: long PyInt_AS_LONG(PyObject *io)
|
---|
[2] | 95 |
|
---|
| 96 | Return the value of the object *io*. No error checking is performed.
|
---|
| 97 |
|
---|
| 98 |
|
---|
[391] | 99 | .. c:function:: unsigned long PyInt_AsUnsignedLongMask(PyObject *io)
|
---|
[2] | 100 |
|
---|
[391] | 101 | Will first attempt to cast the object to a :c:type:`PyIntObject` or
|
---|
| 102 | :c:type:`PyLongObject`, if it is not already one, and then return its value as
|
---|
[2] | 103 | unsigned long. This function does not check for overflow.
|
---|
| 104 |
|
---|
| 105 | .. versionadded:: 2.3
|
---|
| 106 |
|
---|
| 107 |
|
---|
[391] | 108 | .. c:function:: unsigned PY_LONG_LONG PyInt_AsUnsignedLongLongMask(PyObject *io)
|
---|
[2] | 109 |
|
---|
[391] | 110 | Will first attempt to cast the object to a :c:type:`PyIntObject` or
|
---|
| 111 | :c:type:`PyLongObject`, if it is not already one, and then return its value as
|
---|
[2] | 112 | unsigned long long, without checking for overflow.
|
---|
| 113 |
|
---|
| 114 | .. versionadded:: 2.3
|
---|
| 115 |
|
---|
| 116 |
|
---|
[391] | 117 | .. c:function:: Py_ssize_t PyInt_AsSsize_t(PyObject *io)
|
---|
[2] | 118 |
|
---|
[391] | 119 | Will first attempt to cast the object to a :c:type:`PyIntObject` or
|
---|
| 120 | :c:type:`PyLongObject`, if it is not already one, and then return its value as
|
---|
| 121 | :c:type:`Py_ssize_t`.
|
---|
[2] | 122 |
|
---|
| 123 | .. versionadded:: 2.5
|
---|
| 124 |
|
---|
| 125 |
|
---|
[391] | 126 | .. c:function:: long PyInt_GetMax()
|
---|
[2] | 127 |
|
---|
| 128 | .. index:: single: LONG_MAX
|
---|
| 129 |
|
---|
| 130 | Return the system's idea of the largest integer it can handle
|
---|
| 131 | (:const:`LONG_MAX`, as defined in the system header files).
|
---|
| 132 |
|
---|
| 133 |
|
---|
[391] | 134 | .. c:function:: int PyInt_ClearFreeList()
|
---|
[2] | 135 |
|
---|
| 136 | Clear the integer free list. Return the number of items that could not
|
---|
| 137 | be freed.
|
---|
| 138 |
|
---|
| 139 | .. versionadded:: 2.6
|
---|