• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. highlight:: c
2
3.. _instancemethod-objects:
4
5Instance Method Objects
6-----------------------
7
8.. index:: object: instancemethod
9
10An instance method is a wrapper for a :c:data:`PyCFunction` and the new way
11to bind a :c:data:`PyCFunction` to a class object. It replaces the former call
12``PyMethod_New(func, NULL, class)``.
13
14
15.. c:var:: PyTypeObject PyInstanceMethod_Type
16
17   This instance of :c:type:`PyTypeObject` represents the Python instance
18   method type. It is not exposed to Python programs.
19
20
21.. c:function:: int PyInstanceMethod_Check(PyObject *o)
22
23   Return true if *o* is an instance method object (has type
24   :c:data:`PyInstanceMethod_Type`).  The parameter must not be ``NULL``.
25   This function always succeeds.
26
27
28.. c:function:: PyObject* PyInstanceMethod_New(PyObject *func)
29
30   Return a new instance method object, with *func* being any callable object
31   *func* is the function that will be called when the instance method is
32   called.
33
34
35.. c:function:: PyObject* PyInstanceMethod_Function(PyObject *im)
36
37   Return the function object associated with the instance method *im*.
38
39
40.. c:function:: PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)
41
42   Macro version of :c:func:`PyInstanceMethod_Function` which avoids error checking.
43
44
45.. _method-objects:
46
47Method Objects
48--------------
49
50.. index:: object: method
51
52Methods are bound function objects. Methods are always bound to an instance of
53a user-defined class. Unbound methods (methods bound to a class object) are
54no longer available.
55
56
57.. c:var:: PyTypeObject PyMethod_Type
58
59   .. index:: single: MethodType (in module types)
60
61   This instance of :c:type:`PyTypeObject` represents the Python method type.  This
62   is exposed to Python programs as ``types.MethodType``.
63
64
65.. c:function:: int PyMethod_Check(PyObject *o)
66
67   Return true if *o* is a method object (has type :c:data:`PyMethod_Type`).  The
68   parameter must not be ``NULL``.  This function always succeeds.
69
70
71.. c:function:: PyObject* PyMethod_New(PyObject *func, PyObject *self)
72
73   Return a new method object, with *func* being any callable object and *self*
74   the instance the method should be bound. *func* is the function that will
75   be called when the method is called. *self* must not be ``NULL``.
76
77
78.. c:function:: PyObject* PyMethod_Function(PyObject *meth)
79
80   Return the function object associated with the method *meth*.
81
82
83.. c:function:: PyObject* PyMethod_GET_FUNCTION(PyObject *meth)
84
85   Macro version of :c:func:`PyMethod_Function` which avoids error checking.
86
87
88.. c:function:: PyObject* PyMethod_Self(PyObject *meth)
89
90   Return the instance associated with the method *meth*.
91
92
93.. c:function:: PyObject* PyMethod_GET_SELF(PyObject *meth)
94
95   Macro version of :c:func:`PyMethod_Self` which avoids error checking.
96