实例方法对象

实例方法是 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(),避免了错误检查。