| .. highlightlang:: c |
| |
| .. _instancemethod-objects: |
| |
| Instance Method Objects |
| ----------------------- |
| |
| .. index:: object: instancemethod |
| |
| An instance method is a wrapper for a :c:data:`PyCFunction` and the new way |
| to bind a :c:data:`PyCFunction` to a class object. It replaces the former call |
| ``PyMethod_New(func, NULL, class)``. |
| |
| |
| .. c:var:: PyTypeObject PyInstanceMethod_Type |
| |
| This instance of :c:type:`PyTypeObject` represents the Python instance |
| method type. It is not exposed to Python programs. |
| |
| |
| .. c:function:: int PyInstanceMethod_Check(PyObject *o) |
| |
| Return true if *o* is an instance method object (has type |
| :c:data:`PyInstanceMethod_Type`). The parameter must not be *NULL*. |
| |
| |
| .. c:function:: 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. |
| |
| |
| .. c:function:: PyObject* PyInstanceMethod_Function(PyObject *im) |
| |
| Return the function object associated with the instance method *im*. |
| |
| |
| .. c:function:: PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im) |
| |
| Macro version of :c:func:`PyInstanceMethod_Function` which avoids error checking. |
| |
| |
| .. _method-objects: |
| |
| Method Objects |
| -------------- |
| |
| .. index:: object: method |
| |
| 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. |
| |
| |
| .. c:var:: PyTypeObject PyMethod_Type |
| |
| .. index:: single: MethodType (in module types) |
| |
| This instance of :c:type:`PyTypeObject` represents the Python method type. This |
| is exposed to Python programs as ``types.MethodType``. |
| |
| |
| .. c:function:: int PyMethod_Check(PyObject *o) |
| |
| Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). The |
| parameter must not be *NULL*. |
| |
| |
| .. c:function:: PyObject* PyMethod_New(PyObject *func, PyObject *self) |
| |
| 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*. |
| |
| |
| .. c:function:: PyObject* PyMethod_Function(PyObject *meth) |
| |
| Return the function object associated with the method *meth*. |
| |
| |
| .. c:function:: PyObject* PyMethod_GET_FUNCTION(PyObject *meth) |
| |
| Macro version of :c:func:`PyMethod_Function` which avoids error checking. |
| |
| |
| .. c:function:: PyObject* PyMethod_Self(PyObject *meth) |
| |
| Return the instance associated with the method *meth*. |
| |
| |
| .. c:function:: PyObject* PyMethod_GET_SELF(PyObject *meth) |
| |
| Macro version of :c:func:`PyMethod_Self` which avoids error checking. |
| |
| |
| .. c:function:: int PyMethod_ClearFreeList() |
| |
| Clear the free list. Return the total number of freed items. |
| |