实例方法对象

实例方法是 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() 的宏版本,可避免错误检查。