type PyTupleObject
这个 PyObject 的子类型代表一个 Python 的元组对象。
PyTypeObject PyTuple_Type
属于 稳定 ABI.
PyTypeObject 的实例代表一个 Python 元组类型,这与 Python 层面的 tuple 是相同的对象。
int PyTuple_Check(PyObject *p)
如果 p 是一个 tuple 对象或者 tuple 类型的子类型的实例则返回真值。 此函数总是会成功执行。
int PyTuple_CheckExact(PyObject *p)
如果 p 是一个 tuple 对象但不是 tuple 类型的子类型的实例则返回真值。 此函数总是会成功执行。
PyObject *PyTuple_New(Py_ssize_t len)
返回值:新的引用。 属于 稳定 ABI.
成功时返回一个新的元组对象,长度为 len,失败时返回 NULL。
PyObject *PyTuple_Pack(Py_ssize_t n, ...)
返回值:新的引用。 属于 稳定 ABI.
成功时返回一个新的元组对象,大小为 n ,失败时返回 NULL。 元组值初始化为指向 Python 对象的后续 n 个 C 参数。 PyTuple_Pack(2, a, b) 和 Py_BuildValue("(OO)", a, b) 相等。
Py_ssize_t PyTuple_Size(PyObject *p)
属于 稳定 ABI.
获取指向元组对象的指针,并返回该元组的大小。
Py_ssize_t PyTuple_GET_SIZE(PyObject *p)
返回元组 p 的大小,它必须为非 NULL 并且指向一个元组;不执行错误检查。
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)
返回值:借入的引用。 属于 稳定 ABI.
返回 p 所指向的元组中位于 pos 处的对象。 如果 pos 为负值或超出范围,则返回 NULL 并设置一个 IndexError 异常。
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)
返回值:借入的引用。
类似于 PyTuple_GetItem(),但不检查其参数。
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)
返回值:新的引用。 属于 稳定 ABI.
返回 p 所指向的元组的从 low 到 high 的切片,或者在失败时返回 NULL。 这等价于 Python 表达式 p[low:high]。 不支持从元组末尾进行索引。
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)
属于 稳定 ABI.
在 p 指向的元组的 pos 位置插入对对象 o 的引用。 成功时返回 0;如果 pos 越界,则返回 -1,并抛出一个 IndexError 异常。
备注 此函数会“窃取”对 o 的引用,并丢弃对元组中已在受影响位置的条目的引用。
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)
类似于 PyTuple_SetItem(),但不进行错误检查,并且应该 只是 被用来填充全新的元组。
备注 这个函数会“窃取”一个对 o 的引用,但是,不与 PyTuple_SetItem() 不同,它 不会 丢弃对任何被替换项的引用;元组中位于 pos 位置的任何引用都将被泄漏。
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)
可以用于调整元组的大小。 newsize 将是元组的新长度。 因为元组 被认为 是不可变的,所以只有在对象仅有一个引用时,才应该使用它。 如果元组已经被代码的其他部分所引用,请不要使用此项。 元组在最后总是会增长或缩小。 把它看作是销毁旧元组并创建一个新元组,只会更有效。 成功时返回 0 。 客户端代码不应假定 *p 的结果值将与调用此函数之前的值相同。 如果替换了 *p 引用的对象,则原始的 *p 将被销毁。 失败时,返回 -1,将 *p 设置为 NULL,并引发 MemoryError 或者 SystemError。 |