7.3.4 タプルオブジェクト (tuple object)

PyTupleObject
この PyObject のサブタイプは Python のタプルオブジェクトを 表現します。

PyTypeObject PyTuple_Type
この PyTypeObject のインスタンスは Python のタプル型を 表現します; Python レイヤにおける tupletypes.TupleType と同じオブジェクトです。

int PyTuple_Check(PyObject *p)
p がタプルオブジェクトか、タプル型のサブタイプのインスタンス である場合に真を返します。 バージョン 2.2 で 変更 された仕様: サブタイプを引数にとれるようになりました

int PyTuple_CheckExact(PyObject *p)
p がタプルオブジェクトで、かつタプル型のサブタイプのインスタンス でない場合に真を返します。 バージョン 2.2 で 新たに追加 された仕様です。

PyObject* PyTuple_New(Py_ssize_t len)
戻り値: 新たな参照.
サイズが len 新たなタプルオブジェクトを返します。 失敗すると NULL を返します。

PyObject* PyTuple_Pack(Py_ssize_t n, ...)
戻り値: 新たな参照.
サイズ n 新たなタプルオブジェクトを返します。失敗するとNULL を返します。タプルの値は後続の n 個の Python オブジェクトを指す C 引数になります。"PyTuple_Pack(2, a, b)"は "Py_BuildValue("(OO)", a, b)" と同じです。 バージョン 2.4 で 新たに追加 された仕様です。

int PyTuple_Size(PyObject *p)
タプルオブジェクトへのポインタを引数にとり、そのタプルのサイズを 返します。

int PyTuple_GET_SIZE(PyObject *p)
タプル p のサイズを返しますが、p は非 NULL でなくては ならず、タプルオブジェクトを指していなければなりません; エラーチェックを行いません。

PyObject* PyTuple_GetItem(PyObject *p, Py_ssize_t pos)
戻り値: 借りた参照.
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)
戻り値: 新たな参照.
p の指すタプルオブジェクト内の、位置 low から high までのスライスを取り出して、タプルオブジェクトとして 返します。

int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)
p の指すタプルオブジェクト内の位置 pos に、 オブジェクト o への参照を挿入します。成功した場合には 0 を返します。 注意: この関数は o への参照を ``盗み取り'' ます。

void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)
PyTuple_SetItem() に似ていますが、エラーチェックを 行わず、新たなタプルに値を入れるとき 以外には使ってはなりません注意: この関数は o への参照を ``盗み取り'' ます。

int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)
タプルをリサイズする際に使えます。newsize はタプルの新たな 長さです。タプルは変更不能なオブジェクト ということになっている ので、この関数は対象のオブジェクトに対してただ一つしか参照がない時 以外には使ってはなりません。タプルがコード中の他の部分ですでに参照 されている場合には、この関数を 使ってはなりません。 タプルは常に指定サイズの末尾まで伸縮します。 成功した場合には 0 を返します。 クライアントコードは、*p の値が呼び出し前と同じに なると気体してはなりません。 *p が置き換えられた場合、オリジナルの *p は破壊されます。失敗すると -1 を返し、 *pNULL に設定して、 MemoryError または SystemError を送出します。 バージョン 2.2 で 変更 された仕様: 使われていなかった三つ目のパラメタ、 last_is_sticky を削除しました

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。