实例方法对象

实例方法是 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 方法类型。这在 Python 程序中显示为 types.MethodType

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() 的宏版本,避免了错误检查。