型オブジェクト

PyTypeObject

組み込み型を記述する際に用いられる、オブジェクトを表す C 構造体です。

PyObject* PyType_Type

型オブジェクト自身の型オブジェクトです; Python レイヤにおける type と同じオブジェクトです。

int PyType_Check(PyObject *o)

オブジェクト o が型オブジェクトの場合に真を返します。標準型オブジェクトから派生したサブタイプのインスタンスも含みます。その他の場合には偽を返します。

int PyType_CheckExact(PyObject *o)

オブジェクト o が型オブジェクトの場合に真を返します。標準型のサブタイプの場合は含みません。その他の場合には偽を返します。

unsigned int PyType_ClearCache()

内部の検索キャッシュをクリアします。現在のバージョンタグを返します。

unsigned long PyType_GetFlags(PyTypeObject* type)

type のメンバーである tp_flags を返します。この関数は基本的に Py_LIMITED_API を定義して使うことを想定しています。それぞれのフラグはpythonの異なるリリースで安定していることが保証されていますが、 tp_flags 自体は限定されたAPIの一部ではありません。

バージョン 3.2 で追加.

バージョン 3.4 で変更: 返り値の型が long ではなく unsigned long になりました。

void PyType_Modified(PyTypeObject *type)

内部の検索キャッシュを、その type とすべてのサブタイプに対して無効にします。この関数は type の属性や基底クラス列を変更したあとに手動で呼び出さなければなりません。

int PyType_HasFeature(PyTypeObject *o, int feature)

型オブジェクト o に、型機能 feature が設定されている場合に真を返します。型機能は各々単一ビットのフラグで表されます。

int PyType_IS_GC(PyTypeObject *o)

型オブジェクトが o が循環参照検出をサポートしている場合に真を返します; この関数は型機能フラグ Py_TPFLAGS_HAVE_GC の設定状態をチェックします。

int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)

ab のサブタイプの場合に真を返します。

この関数は実際のサブクラスをチェックするだけです。つまり、 __subclasscheck__()b に対し呼ばれません。 issubclass() と同じチェックをするには PyObject_IsSubclass() を呼んでください。

PyObject* PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
Return value: New reference.

Generic handler for the tp_alloc slot of a type object. Use Python's default memory allocation mechanism to allocate a new instance and initialize all its contents to NULL.

PyObject* PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)
Return value: New reference.

型オブジェクトの tp_new に対するジェネリックハンドラです。型の tp_alloc スロットを使って新しいインスタンスを作成します。

int PyType_Ready(PyTypeObject *type)

型オブジェクトのファイナライズを行います。この関数は全てのオブジェクトで初期化を完了するために呼び出されなくてはなりません。この関数は、基底クラス型から継承したスロットを型オブジェクトに追加する役割があります。成功した場合には 0 を返し、エラーの場合には -1 を返して例外情報を設定します。

PyObject* PyType_FromSpec(PyType_Spec *spec)
Return value: New reference.

関数引数に与えられた spec からヒープタイプのオブジェクトを作って返します。

PyObject* PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
Return value: New reference.

spec からヒープタイプのオブジェクトを生成して返します。加えて、生成されたヒープタイプは bases タプルが保持するすべての型を基底の型として保持します。他のヒープ型を基底型として参照できます。

バージョン 3.3 で追加.

void* PyType_GetSlot(PyTypeObject *type, int slot)

Return the function pointer stored in the given slot. If the result is NULL, this indicates that either the slot is NULL, or that the function was called with invalid parameters. Callers will typically cast the result pointer into the appropriate function type.

バージョン 3.4 で追加.