Plain Integer Objects¶
-
PyTypeObject
PyInt_Type
¶ This instance of
PyTypeObject
represents the Python plain integer type. This is the same object asint
andtypes.IntType
.
-
int
PyInt_Check
(PyObject *o)¶ Return true if o is of type
PyInt_Type
or a subtype ofPyInt_Type
.在 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 ofPyInt_Type
.2.2 新版功能.
-
PyObject*
PyInt_FromString
(char *str, char **pend, int base)¶ - Return value: New reference.
Return a new
PyIntObject
orPyLongObject
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, aPyLongObject
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
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)¶ - Return value: New reference.
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.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.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
orPyLongObject
, if it is not already one, and then return its value as unsigned long. This function does not check for overflow.2.3 新版功能.
-
unsigned PY_LONG_LONG
PyInt_AsUnsignedLongLongMask
(PyObject *io)¶ Will first attempt to cast the object to a
PyIntObject
orPyLongObject
, if it is not already one, and then return its value as unsigned long long, without checking for overflow.2.3 新版功能.
-
Py_ssize_t
PyInt_AsSsize_t
(PyObject *io)¶ Will first attempt to cast the object to a
PyIntObject
orPyLongObject
, if it is not already one, and then return its value asPy_ssize_t
.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.
2.6 新版功能.