
Instance Method Objects
***********************

An instance method is a wrapper for a ``PyCFunction`` and the new way
to bind a ``PyCFunction`` to a class object. It replaces the former
call ``PyMethod_New(func, NULL, class)``.

PyTypeObject PyInstanceMethod_Type

   This instance of ``PyTypeObject`` represents the Python instance
   method type. It is not exposed to Python programs.

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)

   Return a new instance method object, with *func* being any callable
   object *func* is is the function that will be called when the
   instance method is called.

PyObject* PyInstanceMethod_Function(PyObject *im)

   Return the function object associated with the instance method
   *im*.

PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)

   Macro version of ``PyInstanceMethod_Function`` which avoids error
   checking.


Method Objects
**************

Methods are bound function objects. Methods are always bound to an
instance of an user-defined class. Unbound methods (methods bound to a
class object) are no longer available.

PyTypeObject PyMethod_Type

   This instance of ``PyTypeObject`` represents the Python method
   type.  This is exposed to Python programs as ``types.MethodType``.

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 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.

   Return the function object associated with the method *meth*.

PyObject* PyMethod_GET_FUNCTION(PyObject *meth)
    Return value: Borrowed reference.

   Macro version of ``PyMethod_Function`` which avoids error checking.

PyObject* PyMethod_Self(PyObject *meth)
    Return value: Borrowed reference.

   Return the instance associated with the method *meth*.

PyObject* PyMethod_GET_SELF(PyObject *meth)
    Return value: Borrowed reference.

   Macro version of ``PyMethod_Self`` which avoids error checking.

int PyMethod_ClearFreeList(void)

   Clear the free list. Return the total number of freed items.
