##
7.5.3 メソッドオブジェクト (method object)

メソッドオブジェクトを操作する上で便利な関数がいくつかあります。

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)

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

PyObject* `PyMethod_Class`( | PyObject *meth)

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

PyObject* `PyMethod_GET_CLASS`( | PyObject *meth)

  戻り値: 借りた参照.
  `PyMethod_Class()` をマクロで実装したバージョンで、 エラーチェックを行いません。

PyObject* `PyMethod_Function`( | PyObject *meth)

  戻り値: 借りた参照.
  meth に関連付けられている関数オブジェクトを返します。

PyObject* `PyMethod_GET_FUNCTION`( | PyObject *meth)

  戻り値: 借りた参照.
  `PyMethod_Function()` のマクロ版で、エラーチェックを 行いません。

PyObject* `PyMethod_Self`( | PyObject *meth)

  戻り値: 借りた参照.
  meth が束縛メソッドの場合には、メソッドに関連付けられている インスタンスを返します。それ以外の場合には `NULL`を返します。

PyObject* `PyMethod_GET_SELF`( | PyObject *meth)

  戻り値: 借りた参照.
  `PyMethod_Self()` のマクロ版で、エラーチェックを 行いません。