Python 3.6.5 Documentation >  Instance Method Objects

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 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 a 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 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()

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