タプルオブジェクト (tuple object)¶
-
PyTypeObject
PyTuple_Type
¶ この
PyTypeObject
のインスタンスは Python のタプル型を表現します; Python レイヤにおけるtuple
やtypes.TupleType
と同じオブジェクトです。
-
int
PyTuple_Check
(PyObject *p)¶ p がタプルオブジェクトか、タプル型のサブタイプのインスタンスである場合に真を返します。
バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.
-
PyObject*
PyTuple_New
(Py_ssize_t len)¶ - Return value: New reference.
サイズが len の新たなタプルオブジェクトを返します。失敗すると NULL を返します。
バージョン 2.5 で変更: この関数は以前は len の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyTuple_Pack
(Py_ssize_t n, ...)¶ - Return value: New reference.
サイズが n の新たなタプルオブジェクトを返します。失敗すると NULL を返します。タプルの値は後続の n 個の Python オブジェクトを指す C 引数になります。
PyTuple_Pack(2, a, b)
はPy_BuildValue("(OO)", a, b)
と同じです。バージョン 2.4 で追加.
バージョン 2.5 で変更: この関数は以前は n の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
Py_ssize_t
PyTuple_Size
(PyObject *p)¶ タプルオブジェクトへのポインタを引数にとり、そのタプルのサイズを返します。
バージョン 2.5 で変更: この関数は以前は
int
を返していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
Py_ssize_t
PyTuple_GET_SIZE
(PyObject *p)¶ タプル p のサイズを返しますが、p は非 NULL でなくてはならず、タプルオブジェクトを指していなければなりません; この関数はエラーチェックを行いません。
バージョン 2.5 で変更: この関数は以前は
int
を返していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyTuple_GetItem
(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
Return the object at position pos in the tuple pointed to by p. If pos is out of bounds, return NULL and set an
IndexError
exception.バージョン 2.5 で変更: この関数は以前は pos の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyTuple_GET_ITEM
(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
PyTuple_GetItem()
に似ていますが、引数に対するエラーチェックを行いません。バージョン 2.5 で変更: この関数は以前は pos の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyTuple_GetSlice
(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶ - Return value: New reference.
Return the slice of the tuple pointed to by p between low and high, or NULL on failure. This is the equivalent of the Python expression
p[low:high]
. Indexing from the end of the list is not supported.バージョン 2.5 で変更: この関数は以前は low, high の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
int
PyTuple_SetItem
(PyObject *p, Py_ssize_t pos, PyObject *o)¶ Insert a reference to object o at position pos of the tuple pointed to by p. Return
0
on success. If pos is out of bounds, return-1
and set anIndexError
exception.注釈
This function "steals" a reference to o and discards a reference to an item already in the tuple at the affected position.
バージョン 2.5 で変更: この関数は以前は pos の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
void
PyTuple_SET_ITEM
(PyObject *p, Py_ssize_t pos, PyObject *o)¶ PyTuple_SetItem()
に似ていますが、エラーチェックを行わず、新たなタプルに値を入れるとき 以外には使ってはなりません 。注釈
This macro "steals" a reference to o, and, unlike
PyTuple_SetItem()
, does not discard a reference to any item that is being replaced; any reference in the tuple at position pos will be leaked.バージョン 2.5 で変更: この関数は以前は pos の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
int
_PyTuple_Resize
(PyObject **p, Py_ssize_t newsize)¶ タプルをリサイズする際に使えます。 newsize はタプルの新たな長さです。タプルは変更不能なオブジェクト ということになっている ので、この関数はこのオブジェクトに対してただ一つしか参照がない時以外には使ってはなりません。タプルがコード中の他の部分ですでに参照されている場合には、この関数を 使ってはなりません 。タプルは常に指定サイズの末尾まで伸縮します。成功した場合には
0
を返します。クライアントコードは、*p
の値が呼び出し前と同じになると期待してはなりません。*p
が置き換えられた場合、オリジナルの*p
は破壊されます。失敗すると-1
を返し、*p
を NULL に設定して、MemoryError
またはSystemError
を送出します。バージョン 2.2 で変更: 使われていなかった三つ目のパラメタ、 last_is_sticky を削除しました.
バージョン 2.5 で変更: この関数は以前は newsize の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyTuple_ClearFreeList
()¶ free list をクリアします。解放された要素数を返します。
バージョン 2.6 で追加.