整型对象¶
所有整数都实现为任意大小的“长”整数对象。
关于错误,最多 PyLong_As*
API返回 (return type)-1
无法与数字区分。使用 PyErr_Occurred()
消除歧义。
-
PyTypeObject PyLong_Type¶
此实例
PyTypeObject
表示python整数类型。这是同一个对象int
在python层中。
-
int PyLong_Check(PyObject *p)¶
如果其参数为
PyLongObject
或其子类型PyLongObject
。此功能总是成功的。
-
int PyLong_CheckExact(PyObject *p)¶
如果其参数为
PyLongObject
,但不是的子类型PyLongObject
。此功能总是成功的。
-
PyObject *PyLong_FromLong(long v)¶
- Return value: New reference.
返回一个新的
PyLongObject
对象从 v 或NULL
失败论。当前实现为介于
-5
和256
,在该范围内创建int时,实际上只需返回对现有对象的引用。
-
PyObject *PyLong_FromUnsignedLong(unsigned long v)¶
- Return value: New reference.
返回一个新的
PyLongObject
来自C的对象 unsigned long 或NULL
失败论。
-
PyObject *PyLong_FromSsize_t(Py_ssize_t v)¶
- Return value: New reference.
返回一个新的
PyLongObject
来自C的对象Py_ssize_t
或NULL
失败论。
-
PyObject *PyLong_FromSize_t(size_t v)¶
- Return value: New reference.
返回一个新的
PyLongObject
来自C的对象size_t
或NULL
失败论。
-
PyObject *PyLong_FromLongLong(long long v)¶
- Return value: New reference.
返回一个新的
PyLongObject
来自C的对象 long long 或NULL
失败论。
-
PyObject *PyLong_FromUnsignedLongLong(unsigned long long v)¶
- Return value: New reference.
返回一个新的
PyLongObject
来自C的对象 unsigned long long 或NULL
失败论。
-
PyObject *PyLong_FromDouble(double v)¶
- Return value: New reference.
返回一个新的
PyLongObject
对象的整数部分 v 或NULL
失败论。
-
PyObject *PyLong_FromString(const char *str, char **pend, int base)¶
- Return value: New reference.
返回一个新的
PyLongObject
基于中的字符串值 str ,根据中的基数解释。 base . 如果 pend 是非-NULL`, *\*pend* 将指向中的第一个字符 *str* 它跟在数字的表示后面。如果 *base* 是 ``0
, str 使用 整数字面值 定义;在这种情况下,非零十进制数的前导零会引发ValueError
.如果 base 不是0
,必须介于2
和36
包括在内。基本说明符后和数字之间的前导空格和单下划线将被忽略。如果没有数字,ValueError
将被提升。
-
PyObject *PyLong_FromUnicodeObject(PyObject *u, int base)¶
- Return value: New reference.
转换字符串中的Unicode数字序列 u 一个Python整数值。
3.3 新版功能.
-
PyObject *PyLong_FromVoidPtr(void *p)¶
- Return value: New reference.
从指针创建python整数 p . 可以使用以下方法从结果值中检索指针值:
PyLong_AsVoidPtr()
.
-
long PyLong_AsLong(PyObject *obj)¶
返回C long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.提高
OverflowError
如果值 obj 超出范围 long .返回
-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow)¶
返回C long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.如果值 obj 大于
LONG_MAX
或少于LONG_MIN
,集合 *overflow 到1
或-1
,分别返回-1
;否则,设置 *overflow 到0
. 如果发生任何其他异常,则设置 *overflow 到0
然后返回-1
像往常一样。返回
-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
long long PyLong_AsLongLong(PyObject *obj)¶
返回C long long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.提高
OverflowError
如果值 obj 超出范围 long long .返回
-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
long long PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow)¶
返回C long long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.如果值 obj 大于
LLONG_MAX
或少于LLONG_MIN
,集合 *overflow 到1
或-1
,分别返回-1
;否则,设置 *overflow 到0
. 如果发生任何其他异常,则设置 *overflow 到0
然后返回-1
像往常一样。返回
-1
关于错误。使用PyErr_Occurred()
消除歧义。3.2 新版功能.
在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)¶
返回C
Py_ssize_t
代表 派龙 . 派龙 必须是的实例PyLongObject
.提高
OverflowError
如果值 派龙 超出范围Py_ssize_t
.返回
-1
关于错误。使用PyErr_Occurred()
消除歧义。
-
unsigned long PyLong_AsUnsignedLong(PyObject *pylong)¶
返回C unsigned long 代表 派龙 . 派龙 必须是的实例
PyLongObject
.提高
OverflowError
如果值 派龙 超出范围 unsigned long .返回
(unsigned long)-1
关于错误。使用PyErr_Occurred()
消除歧义。
-
size_t PyLong_AsSize_t(PyObject *pylong)¶
返回C
size_t
代表 派龙 . 派龙 必须是的实例PyLongObject
.提高
OverflowError
如果值 派龙 超出范围size_t
.返回
(size_t)-1
关于错误。使用PyErr_Occurred()
消除歧义。
-
unsigned long long PyLong_AsUnsignedLongLong(PyObject *pylong)¶
返回C unsigned long long 代表 派龙 . 派龙 必须是的实例
PyLongObject
.提高
OverflowError
如果值 派龙 超出范围 unsigned long long .返回
(unsigned long long)-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.1 版更改: 否定的 派龙 现在提出
OverflowError
不是TypeError
.
-
unsigned long PyLong_AsUnsignedLongMask(PyObject *obj)¶
返回C unsigned long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.如果值 obj 超出范围 unsigned long ,返回该值模的约简
ULONG_MAX + 1
.返回
(unsigned long)-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
unsigned long long PyLong_AsUnsignedLongLongMask(PyObject *obj)¶
返回C unsigned long long 代表 obj . 如果 obj 不是的实例
PyLongObject
,首先称之为__index__()
方法(如果存在)将其转换为PyLongObject
.如果值 obj 超出范围 unsigned long long ,返回该值模的约简
ULLONG_MAX + 1
.返回
(unsigned long long)-1
关于错误。使用PyErr_Occurred()
消除歧义。在 3.8 版更改: 使用
__index__()
如果有的话。在 3.10 版更改: 此函数将不再使用
__int__()
.
-
double PyLong_AsDouble(PyObject *pylong)¶
返回C double 代表 派龙 . 派龙 必须是的实例
PyLongObject
.提高
OverflowError
如果值 派龙 超出范围 double .返回
-1.0
关于错误。使用PyErr_Occurred()
消除歧义。
-
void *PyLong_AsVoidPtr(PyObject *pylong)¶
转换python整数 派龙 到C void 指针。如果 派龙 无法转换,一个
OverflowError
将被引发。这只能保证产生可用的 void 用于创建值的指针PyLong_FromVoidPtr()
.返回
NULL
关于错误。使用PyErr_Occurred()
消除歧义。