On this page
长整数对象
PyLongObject
- PyObject的此子类型表示 Python 长整数对象。
PyTypeObject
PyLong_Type
- PyTypeObject的此实例表示 Python 长整数类型。这是与
long
和types.LongType
相同的对象。
- PyTypeObject的此实例表示 Python 长整数类型。这是与
- int
PyLong_Check
(PyObject ** p *)- 如果其参数是PyLongObject或PyLongObject的子类型,则返回 true。
在版本 2.2 中更改:接受允许的子类型。
- int
PyLong_CheckExact
(PyObject ** p *)- 如果其参数是PyLongObject,而不是PyLongObject的子类型,则返回 true。
2.2 版中的新Function。
- PyObject *
PyLong_FromLong
(长* v *)- 返回值:新参考.
从* v 返回一个新的PyLongObject对象,如果失败则返回 NULL *。
- PyObject *
PyLong_FromUnsignedLong
(无符号长* v *)- 返回值:新参考.
从 C unsigned long
返回一个新的PyLongObject对象,如果失败则返回* NULL *。
- PyObject *
PyLong_FromSsize_t
(Py_ssize_t * v *)- 返回值:新参考.
从 C Py_ssize_t
返回一个新的PyLongObject对象,如果失败则返回* NULL *。
2.6 版的新Function。
- PyObject *
PyLong_FromSize_t
(size_t * v *)- 返回值:新参考.
从 C size_t
返回一个新的PyLongObject对象,如果失败则返回* NULL *。
2.6 版的新Function。
- PyObject *
PyLong_FromLongLong
(PY_LONG_LONG * v *)- 返回值:新参考.
从 C long long
返回一个新的PyLongObject对象,如果失败则返回* NULL *。
- PyObject *
PyLong_FromUnsignedLongLong
(未签名的 PY_LONG_LONG * v *)- 返回值:新参考.
从 C unsigned long long
返回一个新的PyLongObject对象,如果失败则返回* NULL *。
- PyObject *
PyLong_FromDouble
(双* v *)- 返回值:新参考.
从* v 的整数部分返回一个新的PyLongObject对象,如果失败则返回 NULL *。
- PyObject *
PyLong_FromString
(char *str ,char * pend *,int * base *)- 返回值:新参考.
根据* str 中的字符串值返回一个新的PyLongObject,该字符串值根据 base 中的基数进行解释。如果 pend 不为 NULL ,则* pend 将指向 str 中的第一个字符,该字符紧跟数字的表示形式。如果 base 为0
,则基数将根据 str 的前导字符来确定:如果 str 以'0x'
或'0X'
开头,则将使用基数 16;如果 str 以'0'
开头,则将使用基数 8;否则将使用基数 10.如果 base *不是0
,则它必须介于2
和36
之间(包括_)。前导空格将被忽略。如果没有数字,则将引发ValueError。
- PyObject *
PyLong_FromUnicode
(Py_UNICODE ** u *,Py_ssize_t * length *,int * base *)- 返回值:新参考.
将 Unicode 数字序列转换为 Python 长整数值。第一个参数* u 指向 Unicode 字符串的第一个字符, length 给出字符数, base *是转换的基数。基数必须在[2,36]范围内;如果超出范围,将引发ValueError。
1.6 版中的新Function。
在版本 2.5 中更改:此函数对_length *使用了int
。这可能需要更改您的代码以正确支持 64 位系统。
- PyObject *
PyLong_FromVoidPtr
(void ** p *)- 返回值:新参考.
从指针* p *创建一个 Python 整数或长整数。可以使用PyLong_AsVoidPtr()从结果值中检索指针值。
版本 1.5.2 中的新Function。
在版本 2.5 中进行了更改:如果该整数大于 LONG_MAX,则返回一个正长整数。
- 长
PyLong_AsLong
(PyObject ** pylong *)- 返回* pylong 内容的 C
long
表示形式。如果 pylong *大于LONG_MAX
,则引发OverflowError并将返回-1
。
- 返回* pylong 内容的 C
- long
PyLong_AsLongAndOverflow
(PyObject *pylong ,int overflow *)- 返回* pylong 内容的 C
long
表示形式。如果 pylong *大于LONG_MAX
或小于LONG_MIN
,请将 overflow 分别设置为1
或-1
,然后返回-1
;否则,将 overflow 设置为0
。如果发生任何其他异常(例如 TypeError 或 MemoryError),则将返回-1
,并且 overflow *将是0
。
- 返回* pylong 内容的 C
2.7 版的新Function。
- PY_LONG_LONG
PyLong_AsLongLongAndOverflow
(PyObject *pylong ,int overflow *)- 返回* pylong 内容的 C
long long
表示形式。如果 pylong *大于PY_LLONG_MAX
或小于PY_LLONG_MIN
,请将 overflow 分别设置为1
或-1
,然后返回-1
;否则,将 overflow 设置为0
。如果发生任何其他异常(例如 TypeError 或 MemoryError),则将返回-1
,并且 overflow *将是0
。
- 返回* pylong 内容的 C
2.7 版的新Function。
- Py_ssize_t
PyLong_AsSsize_t
(PyObject ** pylong *)- 返回* pylong 内容的 C
Py_ssize_t
表示形式。如果 pylong *大于PY_SSIZE_T_MAX
,则引发OverflowError并将返回-1
。
- 返回* pylong 内容的 C
2.6 版的新Function。
- 无符号长
PyLong_AsUnsignedLong
(PyObject ** pylong *)- 返回* pylong 内容的 C
unsigned long
表示形式。如果 pylong *大于ULONG_MAX
,则引发OverflowError。
- 返回* pylong 内容的 C
- PY_LONG_LONG
PyLong_AsLongLong
(PyObject ** pylong *)- 从 Python 长整数返回 C
long long
。如果* pylong *无法表示为long long
,则引发OverflowError并返回-1
。
- 从 Python 长整数返回 C
2.2 版中的新Function。
- 未签名的 PY_LONG_LONG
PyLong_AsUnsignedLongLong
(PyObject ** pylong *)- 从 Python 长整数返回 C
unsigned long long
。如果* pylong *无法表示为unsigned long long
,则引发OverflowError并返回(unsigned long long)-1
。
- 从 Python 长整数返回 C
2.2 版中的新Function。
在 2.7 版中进行了更改:现在,负* pylong *会引发OverflowError而不是TypeError。
- 无符号长
PyLong_AsUnsignedLongMask
(PyObject ** io *)- 从 Python 长整数返回 C
unsigned long
,而不检查是否有溢出。
- 从 Python 长整数返回 C
错误返回(unsigned long)-1
。使用PyErr_Occurred()消除歧义。
2.3 版的新Function。
- 未签名的 PY_LONG_LONG
PyLong_AsUnsignedLongLongMask
(PyObject ** io *)- 从 Python 长整数返回 C
unsigned long long
,而不检查是否有溢出。
- 从 Python 长整数返回 C
错误返回(unsigned PY_LONG_LONG)-1
。使用PyErr_Occurred()消除歧义。
2.3 版的新Function。
双
PyLong_AsDouble
(PyObject ** pylong *)- 返回* pylong 内容的 C
double
表示形式。如果 pylong *无法近似表示为double
,则会引发OverflowError异常,并将返回-1.0
。
- 返回* pylong 内容的 C
无效*
PyLong_AsVoidPtr
(PyObject ** pylong *)- 将 Python 整数或长整数* pylong 转换为 C
void
指针。如果 pylong *无法转换,则会引发OverflowError。仅保证为使用PyLong_FromVoidPtr()创建的值生成可用的void
指针。
- 将 Python 整数或长整数* pylong 转换为 C
版本 1.5.2 中的新Function。
在版本 2.5 中更改:对于 0..LONG_MAX 以外的值,有符号和无符号整数均可接受。