]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-21767: explicitly mention abc support in functools.singledispatch docs (#17171)
authorBatuhan Taşkaya <47358913+isidentical@users.noreply.github.com>
Tue, 19 Nov 2019 08:16:46 +0000 (11:16 +0300)
committerŁukasz Langa <lukasz@langa.pl>
Tue, 19 Nov 2019 08:16:46 +0000 (09:16 +0100)
Doc/library/functools.rst
Misc/NEWS.d/next/Documentation/2019-11-17-11-54-57.bpo-21767.Qq3Dos.rst [new file with mode: 0644]

index cedc3ad5ec0a61f9ea9bec2d491bbcce883a2c92..bb7aac42daca7867d61fac6a0b6ecbd05759f086 100644 (file)
@@ -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 (file)
index 0000000..1e2a45e
--- /dev/null
@@ -0,0 +1 @@
+Explicitly mention abc support in functools.singledispatch