クラスおよびインスタンスオブジェクト—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/c-api/class
移動先:案内検索

クラスおよびインスタンスオブジェクト

ここで説明するクラスオブジェクトは、Python3で廃止される古いスタイルのクラスを表すことに注意してください。 拡張モジュールの新しい型を作成するときは、型オブジェクトを操作する必要があります(セクション型オブジェクト)。

type PyClassObject
組み込みクラスの記述に使用されるオブジェクトのC構造体。
PyObject *PyClass_Type
これはクラスオブジェクトの型オブジェクトです。 Pythonレイヤーのtypes.ClassTypeと同じオブジェクトです。
int PyClass_Check(PyObject *o)
オブジェクト o がクラスオブジェクトである場合はtrueを返します。これには、標準のクラスオブジェクトから派生した型のインスタンスが含まれます。 それ以外の場合はすべてfalseを返します。
int PyClass_IsSubclass(PyObject *klass, PyObject *base)
klassbase のサブクラスである場合はtrueを返します。 それ以外の場合はすべてfalseを返します。

インスタンスオブジェクトに固有の関数はほとんどありません。

PyTypeObject PyInstance_Type
クラスインスタンスのタイプオブジェクト。
int PyInstance_Check(PyObject *obj)
obj がインスタンスの場合はtrueを返します。
PyObject *PyInstance_New(PyObject *class, PyObject *arg, PyObject *kw)
特定のクラスの新しいインスタンスを作成します。 パラメーター arg および kw は、オブジェクトのコンストラクターへの位置パラメーターおよびキーワードパラメーターとして使用されます。
PyObject *PyInstance_NewRaw(PyObject *class, PyObject *dict)
コンストラクターを呼び出さずに、特定のクラスの新しいインスタンスを作成します。 class は新しいオブジェクトのクラスです。 dict パラメーターは、オブジェクトの __ dict __ として使用されます。 NULL の場合、インスタンス用に新しい辞書が作成されます。