インスタンスメソッドオブジェクト—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.9/c-api/method
移動先:案内検索

インスタンスメソッドオブジェクト

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

PyTypeObject PyInstanceMethod_Type
PyTypeObject のこのインスタンスは、Pythonインスタンスのメソッドタイプを表します。 Pythonプログラムには公開されていません。
int PyInstanceMethod_Check(PyObject *o)
o がインスタンスメソッドオブジェクト(タイプ PyInstanceMethod_Type )の場合はtrueを返します。 パラメータは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 )の場合はtrueを返します。 パラメータは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()のマクロバージョン。