diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2019-01-04 14:14:32 (GMT) |
---|---|---|
committer | Ivan Levkivskyi <levkivskyi@gmail.com> | 2019-01-04 14:14:32 (GMT) |
commit | 31ec52a9afedd77e36a3ddc31c4c45664b8ac410 (patch) | |
tree | e5506415145e834c91d65f117a7f35da7d87d4e1 /Doc | |
parent | 47a2fced84605a32b79aa3ebc543533ad1a976a1 (diff) | |
download | cpython-31ec52a9afedd77e36a3ddc31c4c45664b8ac410.zip cpython-31ec52a9afedd77e36a3ddc31c4c45664b8ac410.tar.gz cpython-31ec52a9afedd77e36a3ddc31c4c45664b8ac410.tar.bz2 |
bpo-35631: Improve typing docs wrt abstract/concrete collection types (GH-11396)
https://bugs.python.org/issue35631
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/typing.rst | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index aa5e4d2..4a03fe7 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -50,20 +50,20 @@ A type alias is defined by assigning the type to the alias. In this example, Type aliases are useful for simplifying complex type signatures. For example:: - from typing import Dict, Tuple, List + from typing import Dict, Tuple, Sequence ConnectionOptions = Dict[str, str] Address = Tuple[str, int] Server = Tuple[Address, ConnectionOptions] - def broadcast_message(message: str, servers: List[Server]) -> None: + def broadcast_message(message: str, servers: Sequence[Server]) -> None: ... # The static type checker will treat the previous type signature as # being exactly equivalent to this one. def broadcast_message( message: str, - servers: List[Tuple[Tuple[str, int], Dict[str, str]]]) -> None: + servers: Sequence[Tuple[Tuple[str, int], Dict[str, str]]]) -> None: ... Note that ``None`` as a type hint is a special case and is replaced by @@ -568,6 +568,10 @@ The module defines the following classes, functions and decorators: .. class:: Mapping(Sized, Collection[KT], Generic[VT_co]) A generic version of :class:`collections.abc.Mapping`. + This type can be used as follows:: + + def get_position_in_index(word_list: Mapping[str, int], word: str) -> int: + return word_list[word] .. class:: MutableMapping(Mapping[KT, VT]) @@ -601,8 +605,8 @@ The module defines the following classes, functions and decorators: Generic version of :class:`list`. Useful for annotating return types. To annotate arguments it is preferred - to use abstract collection types such as :class:`Mapping`, :class:`Sequence`, - or :class:`AbstractSet`. + to use an abstract collection type such as :class:`Sequence` or + :class:`Iterable`. This type may be used as follows:: @@ -617,6 +621,8 @@ The module defines the following classes, functions and decorators: .. class:: Set(set, MutableSet[T]) A generic version of :class:`builtins.set <set>`. + Useful for annotating return types. To annotate arguments it is preferred + to use an abstract collection type such as :class:`AbstractSet`. .. class:: FrozenSet(frozenset, AbstractSet[T_co]) @@ -678,10 +684,13 @@ The module defines the following classes, functions and decorators: .. class:: Dict(dict, MutableMapping[KT, VT]) A generic version of :class:`dict`. - The usage of this type is as follows:: + Useful for annotating return types. To annotate arguments it is preferred + to use an abstract collection type such as :class:`Mapping`. - def get_position_in_index(word_list: Dict[str, int], word: str) -> int: - return word_list[word] + This type can be used as follows:: + + def count_words(text: str) -> Dict[str, int]: + ... .. class:: DefaultDict(collections.defaultdict, MutableMapping[KT, VT]) |