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