实例方法对象

实例方法是 PyCFunction 的包装器,也是将 PyCFunction 绑定到类对象的一种新方式。 它替代了原先的调用 PyMethod_New(func, NULL, class)

PyTypeObject PyInstanceMethod_Type

这个 PyTypeObject 实例代表 Python 实例方法类型。 它并不对 Python 程序公开。

int PyInstanceMethod_Check(PyObject *o)

Return true if o is an instance method object (has type PyInstanceMethod_Type). The parameter must not be 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)

Return true if o is a method object (has type PyMethod_Type). The parameter must not be NULL.

PyObject PyMethod_New(PyObject **func, PyObject *self)

Return value: New reference.

Return a new method object, with func being any callable object and self the instance the method should be bound. func is the function that will be called when the method is called. self must not be NULL.

PyObject PyMethod_Function(PyObject **meth)

Return value: Borrowed reference.

返回关联到方法 meth 的函数对象。

PyObject PyMethod_GET_FUNCTION(PyObject **meth)

Return value: Borrowed reference.

宏版本的 PyMethod_Function(),略去了错误检测。

PyObject PyMethod_Self(PyObject **meth)

Return value: Borrowed reference.

返回关联到方法 meth 的实例。

PyObject PyMethod_GET_SELF(PyObject **meth)

Return value: Borrowed reference.

宏版本的 PyMethod_Self(),省略了错误检测。

int PyMethod_ClearFreeList()

清空释放列表。 返回所释放的条目数。