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

ここで説明されているクラスオブジェクトは旧スタイルクラスのもので、
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)

   *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*
   なら、インスタンス用に新たな辞書が作成されます。
