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 "int" and "types.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 value: New reference.* 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* 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. If the string represents a number too large to be contained within the machine’s "long 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) *Return value: New reference.* Create a new integer object with a value of *ival*. The current implementation keeps an array of integer objects for all integers between "-5" and "256", 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. :-) PyObject* PyInt_FromSsize_t(Py_ssize_t ival) *Return value: New reference.* Create a new integer object with a value of *ival*. If the value is larger than "LONG_MAX" or smaller than "LONG_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 check "PyErr_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.