クラスとインスタンスオブジェクト

ここで説明されているクラスオブジェクトは旧スタイルクラスのもので、 Python 3 では削除されることに注意してください。 新たに型を拡張モジュールで作成する場合は、 type オブジェクトを扱うべきです。 (型オブジェクト を参照)

PyClassObject

ビルトインクラスを表すためのオブジェクトの構造体

PyObject* PyClass_Type

クラスオブジェクトのための type オブジェクト。 Python レイヤーの、 types.ClassType と同じオブジェクト。

int PyClass_Check(PyObject *o)

標準のクラスオブジェクトから派生した type のインスタンスだった場合を含めて、オブジェクト o がクラスオブジェクトだった場合に真を返します。 それ以外の場合は偽を返します。

int PyClass_IsSubclass(PyObject *klass, PyObject *base)

klassbase のサブクラスだった場合に真を返します。 それ以外の場合は偽を返します。

インスタンスオブジェクト固有の関数はきわめてわずかです。

PyTypeObject PyInstance_Type

クラスインスタンスの型オブジェクトです。

int PyInstance_Check(PyObject *obj)

obj がインスタンスの場合に真を返します。

PyObject* PyInstance_New(PyObject *class, PyObject *arg, PyObject *kw)
Return value: New reference.

特定のクラスの新たなインスタンスを生成します。パラメタ arg および kw はそれぞれオブジェクトのコンストラクタに渡す位置依存パラメータおよびキーワードパラメータとして使われます。

PyObject* PyInstance_NewRaw(PyObject *class, PyObject *dict)
Return value: New reference.

特定のクラスの新たなインスタンスを、コンストラクタを呼ばずに生成します。 class は新たに作成するオブジェクトのクラスです。 dict パラメータは オブジェクトの __dict__ に使われます; dictNULL なら、インスタンス用に新たな辞書が作成されます。