インスタンスメソッドオブジェクト(Instance Method Objects)

インスタンスメソッドとは PyCFunction のためのラッパーであり、 PyCFunction をクラスオブジェクトにバインドするための新しいやり方です。これは以前の PyMethod_New(func, NULL, class) の呼び出しを置き換えます。

PyTypeObject PyInstanceMethod_Type

PyTypeObject のインスタンスは Python のインスタンスメソッドの型を表現します。これは Python のプログラムには公開されません。

int PyInstanceMethod_Check(PyObject *o)

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

PyObject* PyInstanceMethod_New(PyObject *func)
Return value: New reference.

任意の呼び出し可能オブジェクト func を使った新たなメソッドオブジェクトを返します。関数 func はメソッドが呼び出されたときに呼び出されるオブジェクトです。

PyObject* PyInstanceMethod_Function(PyObject *im)
Return value: Borrowed reference.

インスタンスメソッド im に関連付けられた関数オブジェクトを返します。

PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)
Return value: Borrowed reference.

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

メソッドオブジェクト

メソッドは関数オブジェクトに束縛されています。メソッドは常にあるユーザー定義のクラスに束縛されているのです。束縛されていないメソッド(クラスオブジェクトに束縛されたメソッド)は利用することができません。

PyTypeObject PyMethod_Type

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

int PyMethod_Check(PyObject *o)

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

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

任意の呼び出し可能オブジェクト func とメソッドが束縛されるべきインスタンス self を使った新たなメソッドオブジェクトを返します。 関数 func は、メソッドが呼び出された時に呼び出されるオブジェクトです。 selfNULL にできません。

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 に関連付けられたインスタンスを返します。

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

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