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

PyTupleObject

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

PyTypeObject PyTuple_Type

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

int PyTuple_Check(PyObject *p)

   *p* がタプルオブジェクトか、タプル型のサブタイプのインスタンスであ
   る場合に真を返します。

   バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.

int PyTuple_CheckExact(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.*

   *p* の指すタプルオブジェクト内の、位置 *pos* にあるオブジェクトを返
   します。 *pos* が範囲を超えている場合、 *NULL* を返して
   "IndexError" 例外をセットします。

   バージョン 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.*

   *p* の指すタプルオブジェクト内の、位置 *low* から *high* までのスラ
   イスを取り出して、タプルオブジェクトとして返します。

   バージョン 2.5 で変更: この関数は以前は *low*, *high* の型に "int"
   を利用していました。この変更により、 64bit システムを正しくサポート
   するには修正が必要になります。

int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)

   *p* の指すタプルオブジェクト内の位置 *pos* に、オブジェクト *o* へ
   の参照を挿入します。成功した場合には "0" を返します。

   注釈: この関数は *o* への参照を "盗み取り" ます。

   バージョン 2.5 で変更: この関数は以前は *pos* の型に "int" を利用し
   ていました。この変更により、 64bit システムを正しくサポートするには
   修正が必要になります。

void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)

   "PyTuple_SetItem()" に似ていますが、エラーチェックを行わず、新たな
   タプルに値を入れるとき *以外には使ってはなりません* 。

   注釈: この関数は *o* への参照を "盗み取り" ます。

   バージョン 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 で追加.
