クラスとインスタンスオブジェクト
ここで説明されているクラスオブジェクトは旧スタイルクラスのもので、
Python 3 では削除されることに注意してください。新スタイルクラス(type)を拡張モジュールで作成する場合は、 type オブジェクトを扱うべきです。 (型オブジェクト (type object) を参照)
-
PyClassObject
ビルトインクラスを表すためのオブジェクトの構造体
-
PyObject* PyClass_Type
クラスオブジェクトのための type オブジェクト。
Python レイヤーの、 types.ClassType と同じオブジェクト。
-
int PyClass_Check(PyObject *o)
o が、標準のクラスオブジェクトから派生した type のインスタンスだった場合を含めて、クラスオブジェクトだった場合に真を返します。それ以外の場合は偽を返します。
-
int PyClass_IsSubclass(PyObject *klass, PyObject *base)
klass が base のサブクラスだった場合に真を返します。それ以外の場合は偽を返します。
インスタンスオブジェクト固有の関数はきわめてわずかです。
-
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__ に使われます; dict が NULL なら、インスタンス用に新たな辞書が作成されます。