Plain Integer Objects — Python documentation
Plain Integer Objects
- type PyIntObject
- This subtype of PyObject represents a Python integer object.
- PyTypeObject PyInt_Type
- This instance of PyTypeObject represents the Python plain integer type. This is the same object as
int
andtypes.IntType
.
- int PyInt_Check(PyObject *o)
Return true if o is of type PyInt_Type or a subtype of PyInt_Type.
Changed in version 2.2: Allowed subtypes to be accepted.
- int PyInt_CheckExact(PyObject *o)
Return true if o is of type PyInt_Type, but not a subtype of PyInt_Type.
New in version 2.2.
- PyObject *PyInt_FromString(char *str, char **pend, int base)
- Return a new PyIntObject or 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 is0
, 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 not0
, it must be between2
and36
, inclusive. Leading spaces are ignored. If there are no digits,ValueError
will be raised. If the string represents a number too large to be contained within the machine’slong int
type and overflow warnings are being suppressed, a PyLongObject will be returned. If overflow warnings are not being suppressed, NULL will be returned in this case.
- PyObject *PyInt_FromLong(long ival)
Create a new integer object with a value of ival.
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. So it should be possible to change the value of1
. I suspect the behaviour of Python in this case is undefined. :-)
- PyObject *PyInt_FromSsize_t(Py_ssize_t ival)
Create a new integer object with a value of ival. If the value is larger than
LONG_MAX
or smaller thanLONG_MIN
, a long integer object is returned.New in version 2.5.
- PyObject *PyInt_FromSize_t(size_t ival)
Create a new integer object with a value of ival. If the value exceeds
LONG_MAX
, a long integer object is returned.New in version 2.5.
- long PyInt_AsLong(PyObject *io)
- Will first attempt to cast the object to a PyIntObject, if it is not already one, and then return its value. If there is an error,
-1
is returned, and the caller should checkPyErr_Occurred()
to find out whether there was an error, or whether the value just happened to be-1
.
- long PyInt_AS_LONG(PyObject *io)
- Return the value of the object io. No error checking is performed.
- unsigned long PyInt_AsUnsignedLongMask(PyObject *io)
Will first attempt to cast the object to a PyIntObject or PyLongObject, if it is not already one, and then return its value as unsigned long. This function does not check for overflow.
New in version 2.3.
- unsigned PY_LONG_LONG PyInt_AsUnsignedLongLongMask(PyObject *io)
Will first attempt to cast the object to a PyIntObject or PyLongObject, if it is not already one, and then return its value as unsigned long long, without checking for overflow.
New in version 2.3.
- Py_ssize_t PyInt_AsSsize_t(PyObject *io)
Will first attempt to cast the object to a PyIntObject or PyLongObject, if it is not already one, and then return its value as
Py_ssize_t
.New in version 2.5.
- long PyInt_GetMax()
- Return the system’s idea of the largest integer it can handle (
LONG_MAX
, as defined in the system header files).
- int PyInt_ClearFreeList()
Clear the integer free list. Return the number of items that could not be freed.
New in version 2.6.