实例方法对象 — Python 文档

来自菜鸟教程
Python/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 是调用方法时会调用的函数。 self 不能是 NULL
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() 的宏版本,可避免错误检查。