7.2.1 Plain Integer Objects

 

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 types.IntType.  

int PyInt_Check(PyObject* o)
Returns 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)
Returns true if o is of type PyInt_Type, but not a subtype of PyInt_Type. New in version 2.2.

PyObject* PyInt_FromLong(long ival)
Return value: New reference.
Creates a new integer object with a value of ival.

The current implementation keeps an array of integer objects for all integers between -1 and 100, 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 of 1. I suspect the behaviour of Python in this case is undefined. :-)

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.

long PyInt_AS_LONG(PyObject *io)
Returns the value of the object io. No error checking is performed.

long PyInt_GetMax()
Returns the system's idea of the largest integer it can handle (LONG_MAX  as defined in the system header files).

See About this document... for information on suggesting changes.