型オブジェクト¶
-
PyTypeObject
¶ 組み込み型を記述する際に用いられる、オブジェクトを表す C 構造体です。
-
int
PyType_Check
(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)¶ a が b のサブタイプの場合に真を返します。
この関数は実際のサブクラスをチェックするだけです。つまり、
__subclasscheck__()
は b に対し呼ばれません。issubclass()
と同じチェックをするにはPyObject_IsSubclass()
を呼んでください。
-
PyObject*
PyType_GenericAlloc
(PyTypeObject *type, Py_ssize_t nitems)¶ - Return value: New reference.
型オブジェクトの
tp_alloc
に対するジェネリックハンドラです。 Python のデフォルトのメモリアロケートメカニズムを使って新しいインスタンスをアロケートし、すべての内容を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)¶ 与えられたスロットに格納されている関数ポインタを返します。返り値が
NULL
の場合は、スロットがNULL
か、関数が不正な引数で呼ばれたことを示します。通常、呼び出し側は返り値のポインタを適切な関数型にキャストします。バージョン 3.4 で追加.