整型对象¶
所有整数都实现为任意大小的“长”整数对象。
关于错误,最多 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()消除歧义。