7.5.4 メソッドオブジェクト (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 をインスタンス自体にして、 classself のクラスにしなければなりません。 それ以外の場合は selfNULL に、 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() のマクロ版で、エラーチェックを 行いません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。