インスタンスメソッドオブジェクト(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() のマクロ版で、エラーチェックを行いません。