@@ -424,24 +424,63 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
424424
425425 Return ``True `` if the object is a bound method written in Python.
426426
427+ .. note ::
427428
428- .. function :: ispackage(object)
429+ For example, given this class::
429430
430- Return ``True `` if the object is a :term: `package `.
431+ >>> class Greeter:
432+ ... def say_hello(self):
433+ ... print('hello!')
431434
432- .. versionadded :: 3.14
435+ A bound method (also known as an *instance method *) is created when
436+ accessing ``say_hello `` (a :term: `function ` defined in the
437+ ``Greeter `` namespace) through an instance of the ``Greeter `` class::
438+
439+ >>> instance = Greeter()
440+
441+ >>> instance.say_hello
442+ <bound method Greeter.say_hello of <__main__.Greeter object ...>>
443+ >>> ismethod(instance.say_hello)
444+ True
445+ >>> isfunction(instance.say_hello)
446+ False
447+
448+ Accessing ``say_hello `` through the ``Greeter `` class will return the
449+ function itself. For this function, :func: `ismethod ` will return
450+ ``False ``, but :func: `isfunction ` will return ``True ``::
451+
452+ >>> Greeter.say_hello
453+ <function Greeter.say_hello at 0x7f7503854a90>
454+ >>> ismethod(Greeter.say_hello)
455+ False
456+ >>> isfunction(Greeter.say_hello)
457+ True
458+
459+ See :ref: `typesmethods ` for details.
433460
434461
435462.. function :: isfunction(object)
436463
437464 Return ``True `` if the object is a Python function, which includes functions
438465 created by a :term: `lambda ` expression.
439466
467+ See the note for :func: `~inspect.ismethod ` for an example.
468+
469+
470+ .. function :: ispackage(object)
471+
472+ Return ``True `` if the object is a :term: `package `.
473+
474+ .. versionadded :: 3.14
475+
440476
441477.. function :: isgeneratorfunction(object)
442478
443479 Return ``True `` if the object is a Python generator function.
444480
481+ It also returns ``True `` for bound methods created from Python generator functions
482+ (see :ref: `typesmethods ` for more information).
483+
445484 .. versionchanged :: 3.8
446485 Functions wrapped in :func: `functools.partial ` now return ``True `` if the
447486 wrapped function is a Python generator function.
0 commit comments