mirror of
https://github.com/python/cpython.git
synced 2025-07-23 19:25:40 +00:00
bpo-46014: Add docs regarding functools.singledispatch
changes in 3.11 (#32282)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
parent
6fdb62b1fa
commit
014eb7fd02
2 changed files with 51 additions and 0 deletions
|
@ -436,6 +436,23 @@ The :mod:`functools` module defines the following functions:
|
|||
... for i, elem in enumerate(arg):
|
||||
... print(i, elem)
|
||||
|
||||
:data:`types.UnionType` and :data:`typing.Union` can also be used::
|
||||
|
||||
>>> @fun.register
|
||||
... def _(arg: int | float, verbose=False):
|
||||
... if verbose:
|
||||
... print("Strength in numbers, eh?", end=" ")
|
||||
... print(arg)
|
||||
...
|
||||
>>> from typing import Union
|
||||
>>> @fun.register
|
||||
... def _(arg: Union[list, set], verbose=False):
|
||||
... if verbose:
|
||||
... print("Enumerate this:")
|
||||
... for i, elem in enumerate(arg):
|
||||
... print(i, elem)
|
||||
...
|
||||
|
||||
For code which doesn't use type annotations, the appropriate type
|
||||
argument can be passed explicitly to the decorator itself::
|
||||
|
||||
|
@ -535,6 +552,10 @@ The :mod:`functools` module defines the following functions:
|
|||
.. versionchanged:: 3.7
|
||||
The :func:`register` attribute now supports using type annotations.
|
||||
|
||||
.. versionchanged:: 3.11
|
||||
The :func:`register` attribute now supports :data:`types.UnionType`
|
||||
and :data:`typing.Union` as type annotations.
|
||||
|
||||
|
||||
.. class:: singledispatchmethod(func)
|
||||
|
||||
|
|
|
@ -267,6 +267,36 @@ fractions
|
|||
that an ``isinstance(some_fraction, typing.SupportsInt)`` check passes.
|
||||
(Contributed by Mark Dickinson in :issue:`44547`.)
|
||||
|
||||
functools
|
||||
---------
|
||||
|
||||
* :func:`functools.singledispatch` now supports :data:`types.UnionType`
|
||||
and :data:`typing.Union` as annotations to the dispatch argument.::
|
||||
|
||||
>>> from functools import singledispatch
|
||||
>>> @singledispatch
|
||||
... def fun(arg, verbose=False):
|
||||
... if verbose:
|
||||
... print("Let me just say,", end=" ")
|
||||
... print(arg)
|
||||
...
|
||||
>>> @fun.register
|
||||
... def _(arg: int | float, verbose=False):
|
||||
... if verbose:
|
||||
... print("Strength in numbers, eh?", end=" ")
|
||||
... print(arg)
|
||||
...
|
||||
>>> from typing import Union
|
||||
>>> @fun.register
|
||||
... def _(arg: Union[list, set], verbose=False):
|
||||
... if verbose:
|
||||
... print("Enumerate this:")
|
||||
... for i, elem in enumerate(arg):
|
||||
... print(i, elem)
|
||||
...
|
||||
|
||||
(Contributed by Yurii Karabas in :issue:`46014`.)
|
||||
|
||||
hashlib
|
||||
-------
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue