普通整数对象 — Python 文档

来自菜鸟教程
Python/docs/2.7/c-api/int
跳转至:导航、​搜索

普通整数对象

type PyIntObject
PyObject 的这个子类型表示一个 Python 整数对象。
PyTypeObject PyInt_Type
PyTypeObject 的这个实例表示 Python 纯整数类型。 这是与 inttypes.IntType 相同的对象。
int PyInt_Check(PyObject *o)

如果 o 的类型为 PyInt_TypePyInt_Type 的子类型,则返回 true。

在 2.2 版更改:允许接受子类型。

int PyInt_CheckExact(PyObject *o)

如果 o 的类型为 PyInt_Type,但不是 PyInt_Type 的子类型,则返回 true。

2.2 版中的新功能。

PyObject *PyInt_FromString(char *str, char **pend, int base)
根据 str 中的字符串值返回一个新的 PyIntObjectPyLongObject,根据 base 中的基数进行解释。 如果 pend 是非 NULL,则 *pend 将指向 str 中的第一个字符,它跟随着数字的表示。 如果 base0,基数将根据 str 的前导字符确定:如果 str'0x' 开头] 或 '0X',将使用基数 16; 如果 str'0' 开头,则使用基数 8; 否则将使用基数 10。 如果 base 不是 0,则它必须介于 236 之间,包括两者。 前导空格被忽略。 如果没有数字,ValueError 将被提出。 如果字符串表示的数字太大而无法包含在机器的 long int 类型中并且溢出警告被抑制,则将返回 PyLongObject。 如果未抑制溢出警告,则在这种情况下将返回 NULL
PyObject *PyInt_FromLong(long ival)

创建一个值为 ival 的新整数对象。

当前的实现为 -5256 之间的所有整数保留了一个整数对象数组,当您在该范围内创建一个 int 时,您实际上只是返回对现有对象的引用。 所以应该可以改变1的值。 我怀疑在这种情况下 Python 的行为是未定义的。 :-)

PyObject *PyInt_FromSsize_t(Py_ssize_t ival)

创建一个值为 ival 的新整数对象。 如果该值大于LONG_MAX或小于LONG_MIN,则返回一个长整型对象。

2.5 版中的新功能。

PyObject *PyInt_FromSize_t(size_t ival)

创建一个值为 ival 的新整数对象。 如果值超过LONG_MAX,则返回一个长整型对象。

2.5 版中的新功能。

long PyInt_AsLong(PyObject *io)
将首先尝试将对象强制转换为 PyIntObject,如果它还不是一个,然后返回其值。 如果有错误,则返回-1,调用者应该检查PyErr_Occurred()是否有错误,或者值是否恰好是-1
long PyInt_AS_LONG(PyObject *io)
返回对象 io 的值。 不执行错误检查。
unsigned long PyInt_AsUnsignedLongMask(PyObject *io)

将首先尝试将对象强制转换为 PyIntObjectPyLongObject,如果它还不是一个,然后将其值作为 unsigned long 返回。 此函数不检查溢出。

2.3 版中的新功能。

unsigned PY_LONG_LONG PyInt_AsUnsignedLongLongMask(PyObject *io)

将首先尝试将对象强制转换为 PyIntObjectPyLongObject(如果它还不是一个),然后将其值作为 unsigned long long 返回,而不检查溢出。

2.3 版中的新功能。

Py_ssize_t PyInt_AsSsize_t(PyObject *io)

将首先尝试将对象转换为 PyIntObjectPyLongObject,如果它还不是一个,然后将其值返回为 Py_ssize_t

2.5 版中的新功能。

long PyInt_GetMax()
返回系统关于它可以处理的最大整数的想法(LONG_MAX,如系统头文件中所定义)。
int PyInt_ClearFreeList()

清除整数空闲列表。 返回无法释放的项目数。

2.6 版中的新功能。