From: Batuhan Taşkaya <47358913+isidentical@users.noreply.github.com> Date: Tue, 19 Nov 2019 08:16:46 +0000 (+0300) Subject: bpo-21767: explicitly mention abc support in functools.singledispatch docs (#17171) X-Git-Tag: v3.9.0a1~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24555ce2f969bd69517011d23aaf8cc481090211;p=thirdparty%2FPython%2Fcpython.git bpo-21767: explicitly mention abc support in functools.singledispatch docs (#17171) --- diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index cedc3ad5ec0a..bb7aac42daca 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -423,6 +423,20 @@ The :mod:`functools` module defines the following functions: for the base ``object`` type, which means it is used if no better implementation is found. + If an implementation registered to :term:`abstract base class`, virtual + subclasses will be dispatched to that implementation:: + + >>> from collections.abc import Mapping + >>> @fun.register + ... def _(arg: Mapping, verbose=False): + ... if verbose: + ... print("Keys & Values") + ... for key, value in arg.items(): + ... print(key, "=>", value) + ... + >>> fun({"a": "b"}) + a => b + To check which implementation will the generic function choose for a given type, use the ``dispatch()`` attribute:: diff --git a/Misc/NEWS.d/next/Documentation/2019-11-17-11-54-57.bpo-21767.Qq3Dos.rst b/Misc/NEWS.d/next/Documentation/2019-11-17-11-54-57.bpo-21767.Qq3Dos.rst new file mode 100644 index 000000000000..1e2a45e1113c --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2019-11-17-11-54-57.bpo-21767.Qq3Dos.rst @@ -0,0 +1 @@ +Explicitly mention abc support in functools.singledispatch