# 实例方法对象

实例方法是 `PyCFunction` 的包装器，也是将 `PyCFunction` 与类对象绑定的新方法。 它取代了以前的调用 `PyMethod_New(func, NULL, class)`。

PyTypeObject PyInstanceMethod_Type

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

int PyInstanceMethod_Check( PyObject *o)

  如果 o 是一个实例方法对象 (类型为 `PyInstanceMethod_Type`) 则返回真值。 形参必须不为 `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`) 则返回真值。 形参必须不为 `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()`，略去了错误检测。