@@ -431,8 +431,6 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
431431 will return ``False `` in that case. See :ref: `instance-methods ` in the
432432 language reference for details.
433433
434- For static methods (:deco: `staticmethod `), this will always return ``False ``.
435-
436434
437435.. function :: ispackage(object)
438436
@@ -449,17 +447,18 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
449447 .. note ::
450448
451449 Accessing an instance method through the class (rather than an instance)
452- returns a plain :term: ` function ` , not a bound method , so :func: `isfunction `
453- will return ``True `` in that case. See :ref: `instance-methods ` in the
450+ returns a bound method , not a :term: ` function ` , so :func: `isfunction `
451+ will return ``False `` in that case. See :ref: `instance-methods ` in the
454452 language reference for details.
455453
456- For static methods (:deco: `staticmethod `), this will always return ``True ``.
457-
458454
459455.. function :: isgeneratorfunction(object)
460456
461457 Return ``True `` if the object is a Python generator function.
462458
459+ It also returns ``True `` for bound methods created from Python generator functions
460+ (see :ref: `typesmethods ` for more information).
461+
463462 .. versionchanged :: 3.8
464463 Functions wrapped in :func: `functools.partial ` now return ``True `` if the
465464 wrapped function is a Python generator function.
@@ -468,15 +467,6 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
468467 Functions wrapped in :func: `functools.partialmethod ` now return ``True ``
469468 if the wrapped function is a Python generator function.
470469
471- .. note ::
472-
473- Accessing an instance method through the class (rather than an instance)
474- returns a plain :term: `function `, not a bound method, so :func: `isgeneratorfunction `
475- will return ``True `` if it is a generator function. See :ref: `instance-methods `
476- in the language reference for details.
477-
478- For a static method (:deco: `staticmethod `), this will return ``True `` if it
479- is a generator function.
480470
481471.. function :: isgenerator(object)
482472
@@ -504,16 +494,6 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
504494 Functions wrapped in :func: `functools.partialmethod ` now return ``True ``
505495 if the wrapped function is a :term: `coroutine function `.
506496
507- .. note ::
508-
509- Accessing an instance method through the class (rather than an instance)
510- returns a plain :term: `function `, not a bound method, so :func: `iscoroutinefunction `
511- will return ``True `` if it is a coroutine function. See :ref: `instance-methods `
512- in the language reference for details.
513-
514- For a static method (:deco: `staticmethod `), this will return ``True `` if it
515- is a coroutine function.
516-
517497
518498.. function :: markcoroutinefunction(func)
519499
@@ -584,15 +564,6 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
584564 Functions wrapped in :func: `functools.partialmethod ` now return ``True ``
585565 if the wrapped function is a :term: `asynchronous generator ` function.
586566
587- .. note ::
588-
589- Accessing an instance method through the class (rather than an instance)
590- returns a plain :term: `function `, not a bound method, so :func: `isasyncgenfunction `
591- will return ``True `` if it is an asynchronous generator function. See
592- :ref: `instance-methods ` in the language reference for details.
593-
594- For a static method (:deco: `staticmethod `), this will return ``True `` if it
595- is an asynchronous generator function.
596567
597568.. function :: isasyncgen(object)
598569
0 commit comments