タプルオブジェクト (tuple object)¶
-
PyTypeObject
PyTuple_Type¶ この
PyTypeObjectのインスタンスは Python のタプル型を表現します; Python レイヤにおけるtupleと同じオブジェクトです。
-
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を返します。タプルの値は後続の n 個の Python オブジェクトを指す C 引数になります。PyTuple_Pack(2, a, b)はPy_BuildValue("(OO)", a, b)と同じです。
-
Py_ssize_t
PyTuple_GET_SIZE(PyObject *p)¶ タプル p のサイズを返しますが、p は非
NULLでなくてはならず、タプルオブジェクトを指していなければなりません; この関数はエラーチェックを行いません。
-
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
NULLand set anIndexErrorexception.
-
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 にあるオブジェクトへの参照を入れます。成功すれば
0を返します。 pos が範囲を超えている場合、-1を返してIndexError例外をセットします。注釈
この関数は o への参照を "盗み取り" ます。また、変更先のインデクスにすでに別の要素が入っている場合、その要素に対する参照を放棄します。
-
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.
-
int
_PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶ タプルをリサイズする際に使えます。 newsize はタプルの新たな長さです。タプルは変更不能なオブジェクト ということになっている ので、この関数はこのオブジェクトに対してただ一つしか参照がない時以外には使ってはなりません。タプルがコード中の他の部分ですでに参照されている場合には、この関数を 使ってはなりません 。タプルは常に指定サイズの末尾まで伸縮します。成功した場合には
0を返します。クライアントコードは、*pの値が呼び出し前と同じになると期待してはなりません。*pが置き換えられた場合、オリジナルの*pは破壊されます。失敗すると-1を返し、*pをNULLに設定して、MemoryErrorまたはSystemErrorを送出します。
-
int
PyTuple_ClearFreeList()¶ free list をクリアします。解放された要素数を返します。
Struct Sequence オブジェクト¶
struct sequence オブジェクトは namedtuple() オブジェクトと等価なC オブジェクトです。 つまり、その要素に属性を通してアクセスすることができるシーケンスです。 struct sequence を生成するには、まず特定のstruct sequence 型を生成しなければなりません。
-
PyTypeObject*
PyStructSequence_NewType(PyStructSequence_Desc *desc)¶ - Return value: New reference.
後述の desc 中のデータから新しい struct sequence 型を生成します。返される型のインスタンスは
PyStructSequence_New()で生成できます。
-
void
PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)¶ struct sequence 型である type を desc をもとにその場で初期化します。
-
int
PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)¶ PyStructSequence_InitTypeと同じですが、成功した場合には0を、失敗した場合には-1を返します。バージョン 3.4 で追加.
-
PyStructSequence_Desc¶ 生成するstruct sequence 型のメタデータを保持します。
フィールド
C の型
意味
nameconst char *生成するstruct sequence 型の名前
docconst char *生成する型のdocstringへのポインタ、または省略する場合は
NULLfieldsPyStructSequence_Field *新しい型のフィールド名を格納した
NULL終端された配列へのポインタn_in_sequenceintPython 側で可視となるフィールドの数 (もしタプルとして使用する場合)
-
PyStructSequence_Field¶ Describes a field of a struct sequence. As a struct sequence is modeled as a tuple, all fields are typed as
PyObject*. The index in thefieldsarray of thePyStructSequence_Descdetermines which field of the struct sequence is described.フィールド
C の型
意味
nameconst char *フィールドの名前。もし名前づけされたフィールドのリストの終端を表す場合は
NULL。名前がないままにする場合は、PyStructSequence_UnnamedFieldを設定しますdocconst char *フィールドのdocstring、省略する場合は
NULL
-
char*
PyStructSequence_UnnamedField¶ フィールド名を名前がないままするための特殊な値。
-
PyObject*
PyStructSequence_New(PyTypeObject *type)¶ - Return value: New reference.
type のインスタンスを生成します。 type は
PyStructSequence_NewType()によって事前に生成していなければなりません。
-
PyObject*
PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
p の指すstruct sequence内の、位置 pos にあるオブジェクトを返します。境界チェックを行いません。
-
PyObject*
PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)¶ - Return value: Borrowed reference.
PyStructSequence_GetItem()と同等のマクロです。
-
void
PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶ struct sequence p の pos の位置にあるフィールドに値 o を設定します。
PyTuple_SET_ITEM()のように、生成したてのインスタンスに対してのみ使用すべきです。注釈
この関数は o への参照を "盗み取り" ます。
-
void
PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)¶ PyStructSequence_SetItem()と同等のマクロ。注釈
この関数は o への参照を "盗み取り" ます。