メソッドオブジェクト
********************

C API にはメソッドオブジェクトを扱うのに便利な関数があります。

PyTypeObject PyMethod_Type

   この "PyTypeObject" のインスタンスは Python のメソッド型を表現しま
   す。このオブジェクトは、 "types.MethodType"  として Python プログラ
   ムに公開されています。

int PyMethod_Check(PyObject *o)

   *o* がメソッドオブジェクト ("PyMethod_Type" 型である) 場合に真を返
   します。パラメータは *NULL* にできません。

PyObject* PyMethod_New(PyObject *func, PyObject *self, PyObject *class)
    *Return value: New reference.*

   任意の呼び出し可能オブジェクト *func* を使った新たなメソッドオブジ
   ェクトを返します; 関数 *func* は、メソッドが呼び出された時に呼び出
   されるオブジェクトです。このメソッドをインスタンスに束縛 (bind) し
   たい場合、 *self* をインスタンス自体にして、 *class* を *self* のク
   ラスにしなければなりません。それ以外の場合は *self* を *NULL* に、
   *class* を非束縛メソッドを提供しているクラスにしなければなりません
   。

PyObject* PyMethod_Class(PyObject *meth)
    *Return value: Borrowed reference.*

   メソッドオブジェクト *meth* を生成したクラスオブジェクトを返します;
   インスタンスがメソッドオブジェクトを生成した場合、戻り値はインスタ
   ンスのクラスになります。

PyObject* PyMethod_GET_CLASS(PyObject *meth)
    *Return value: Borrowed reference.*

   "PyMethod_Class()" をマクロで実装したバージョンで、エラーチェックを
   行いません。

PyObject* PyMethod_Function(PyObject *meth)
    *Return value: Borrowed reference.*

   メソッド *meth* に関連付けられている関数オブジェクトを返します。

PyObject* PyMethod_GET_FUNCTION(PyObject *meth)
    *Return value: Borrowed reference.*

   "PyMethod_Function()" のマクロ版で、エラーチェックを行いません。

PyObject* PyMethod_Self(PyObject *meth)
    *Return value: Borrowed reference.*

   *meth* が束縛メソッドの場合には、メソッドに関連付けられているインス
   タンスを返します。それ以外の場合には *NULL* を返します。

PyObject* PyMethod_GET_SELF(PyObject *meth)
    *Return value: Borrowed reference.*

   "PyMethod_Self()" のマクロ版で、エラーチェックを行いません。

int PyMethod_ClearFreeList()

   free list をクリアします。解放された要素数を返します。

   バージョン 2.6 で追加.
