xref: /third_party/python/Doc/c-api/method.rst (revision 7db96d56)
17db96d56Sopenharmony_ci.. highlight:: c
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci.. _instancemethod-objects:
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciInstance Method Objects
67db96d56Sopenharmony_ci-----------------------
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci.. index:: pair: object; instancemethod
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ciAn instance method is a wrapper for a :c:data:`PyCFunction` and the new way
117db96d56Sopenharmony_cito bind a :c:data:`PyCFunction` to a class object. It replaces the former call
127db96d56Sopenharmony_ci``PyMethod_New(func, NULL, class)``.
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci.. c:var:: PyTypeObject PyInstanceMethod_Type
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci   This instance of :c:type:`PyTypeObject` represents the Python instance
187db96d56Sopenharmony_ci   method type. It is not exposed to Python programs.
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci.. c:function:: int PyInstanceMethod_Check(PyObject *o)
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci   Return true if *o* is an instance method object (has type
247db96d56Sopenharmony_ci   :c:data:`PyInstanceMethod_Type`).  The parameter must not be ``NULL``.
257db96d56Sopenharmony_ci   This function always succeeds.
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci.. c:function:: PyObject* PyInstanceMethod_New(PyObject *func)
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci   Return a new instance method object, with *func* being any callable object.
317db96d56Sopenharmony_ci   *func* is the function that will be called when the instance method is
327db96d56Sopenharmony_ci   called.
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci.. c:function:: PyObject* PyInstanceMethod_Function(PyObject *im)
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci   Return the function object associated with the instance method *im*.
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci.. c:function:: PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci   Macro version of :c:func:`PyInstanceMethod_Function` which avoids error checking.
437db96d56Sopenharmony_ci
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci.. _method-objects:
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciMethod Objects
487db96d56Sopenharmony_ci--------------
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci.. index:: pair: object; method
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ciMethods are bound function objects. Methods are always bound to an instance of
537db96d56Sopenharmony_cia user-defined class. Unbound methods (methods bound to a class object) are
547db96d56Sopenharmony_cino longer available.
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci.. c:var:: PyTypeObject PyMethod_Type
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci   .. index:: single: MethodType (in module types)
607db96d56Sopenharmony_ci
617db96d56Sopenharmony_ci   This instance of :c:type:`PyTypeObject` represents the Python method type.  This
627db96d56Sopenharmony_ci   is exposed to Python programs as ``types.MethodType``.
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci
657db96d56Sopenharmony_ci.. c:function:: int PyMethod_Check(PyObject *o)
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ci   Return true if *o* is a method object (has type :c:data:`PyMethod_Type`).  The
687db96d56Sopenharmony_ci   parameter must not be ``NULL``.  This function always succeeds.
697db96d56Sopenharmony_ci
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci.. c:function:: PyObject* PyMethod_New(PyObject *func, PyObject *self)
727db96d56Sopenharmony_ci
737db96d56Sopenharmony_ci   Return a new method object, with *func* being any callable object and *self*
747db96d56Sopenharmony_ci   the instance the method should be bound. *func* is the function that will
757db96d56Sopenharmony_ci   be called when the method is called. *self* must not be ``NULL``.
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_ci.. c:function:: PyObject* PyMethod_Function(PyObject *meth)
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci   Return the function object associated with the method *meth*.
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ci.. c:function:: PyObject* PyMethod_GET_FUNCTION(PyObject *meth)
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_ci   Macro version of :c:func:`PyMethod_Function` which avoids error checking.
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ci
887db96d56Sopenharmony_ci.. c:function:: PyObject* PyMethod_Self(PyObject *meth)
897db96d56Sopenharmony_ci
907db96d56Sopenharmony_ci   Return the instance associated with the method *meth*.
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ci.. c:function:: PyObject* PyMethod_GET_SELF(PyObject *meth)
947db96d56Sopenharmony_ci
957db96d56Sopenharmony_ci   Macro version of :c:func:`PyMethod_Self` which avoids error checking.
96