# メソッドオブジェクト

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 で追加.