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

An instance method is a wrapper for a PyCFunction and the new way to bind a PyCFunction to a class object. It replaces the former call 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)
戻り値: 新しい参照。

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

PyObject *PyInstanceMethod_Function(PyObject *im)
戻り値: 借用参照。

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

PyObject *PyInstanceMethod_GET_FUNCTION(PyObject *im)
戻り値: 借用参照。

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)
戻り値: 新しい参照。

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

PyObject *PyMethod_Function(PyObject *meth)
戻り値: 借用参照。

メソッド meth に関連付けられている関数オブジェクトを返します。

PyObject *PyMethod_GET_FUNCTION(PyObject *meth)
戻り値: 借用参照。

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

PyObject *PyMethod_Self(PyObject *meth)
戻り値: 借用参照。

メソッド meth に関連付けられたインスタンスを返します。

PyObject *PyMethod_GET_SELF(PyObject *meth)
戻り値: 借用参照。

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