Skip to content

Commit

Permalink
gh-113157: Document and test __get__ for MethodType (gh-115492)
Browse files Browse the repository at this point in the history
  • Loading branch information
rhettinger committed Feb 20, 2024
1 parent 2aaef56 commit acda175
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions Doc/howto/descriptor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1192,6 +1192,10 @@ roughly equivalent to:
"Emulate method_getattro() in Objects/classobject.c"
return getattr(self.__func__, name)

def __get__(self, obj, objtype=None):
"Emulate method_descr_get() in Objects/classobject.c"
return self

To support automatic creation of methods, functions include the
:meth:`__get__` method for binding methods during attribute access. This
means that functions are non-data descriptors that return bound methods
Expand All @@ -1214,8 +1218,20 @@ descriptor works in practice:
.. testcode::

class D:
def f(self, x):
return x
def f(self):
return self

class D2:
pass

.. doctest::
:hide:

>>> d = D()
>>> d2 = D2()
>>> d2.f = d.f.__get__(d2, D2)
>>> d2.f() is d
True

The function has a :term:`qualified name` attribute to support introspection:

Expand Down

0 comments on commit acda175

Please sign in to comment.