Python元组对象
PyTupleObject
¶这个
PyObject
的子类型代表一个 Python 的元组对象。
PyTypeObject
PyTuple_Type
¶PyTypeObject
的实例代表一个 Python 元组类型,这与 Python 层面的tuple
是相同的对象。
int
PyTuple_Check
(PyObject *p)¶如果 p 是一个元组对象或者元组类型的子类型的实例,则返回真值。
int
PyTuple_CheckExact
(PyObject *p)¶如果 p 是一个元组对象,而不是一个元组子类型的实例,则返回真值。
PyObject*
PyTuple_New
(Py_ssize_t len)¶- Return value: New reference.
成功时返回一个新的元组对象,长度为 len,失败时返回“NULL”。
PyObject*
PyTuple_Pack
(Py_ssize_t n, ...)¶- Return value: New reference.
成功时返回一个新的元组对象,大小为 n ,失败时返回
NULL
。 元组值初始化为指向 Python 对象的后续 n C 参数。PyTuple_Pack(2,a,b)
和Py_BuildValue("(OO)",a,b)
相等。
Py_ssize_t
PyTuple_Size
(PyObject *p)¶获取指向元组对象的指针,并返回该元组的大小。
Py_ssize_t
PyTuple_GET_SIZE
(PyObject *p)¶返回元组*p*的大小,它必须是非``NULL``并且指向一个元组;不执行错误检查
PyObject*
PyTuple_GetItem
(PyObject *p, Py_ssize_t pos)¶- Return value: Borrowed reference.
返回 p 所指向的元组中,位于 pos 处的对象。 如果 pos 超出界限,返回
NULL
,并抛出一个IndexError
异常。
PyObject*
PyTuple_GET_ITEM
(PyObject *p, Py_ssize_t pos)¶- Return value: Borrowed reference.
类似于
PyTuple_GetItem()
,但不检查其参数。
PyObject*
PyTuple_GetSlice
(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶- Return value: New reference.
返回*p*所指向的元组的切片,在*low*和*high*之间,或者在失败时返回``NULL``。这等同于Python表达式:
p[low:high]
。不支持从列表末尾索引。
int
PyTuple_SetItem
(PyObject *p, Py_ssize_t pos, PyObject *o)¶在 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
。
int
PyTuple_ClearFreeList
()¶清空释放列表。 返回所释放的条目数。