mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
bpo-35631: Improve typing docs wrt abstract/concrete collection types (GH-11396)
https://bugs.python.org/issue35631
This commit is contained in:
parent
47a2fced84
commit
31ec52a9af
1 changed files with 17 additions and 8 deletions
|
@ -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::
|
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]
|
ConnectionOptions = Dict[str, str]
|
||||||
Address = Tuple[str, int]
|
Address = Tuple[str, int]
|
||||||
Server = Tuple[Address, ConnectionOptions]
|
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
|
# The static type checker will treat the previous type signature as
|
||||||
# being exactly equivalent to this one.
|
# being exactly equivalent to this one.
|
||||||
def broadcast_message(
|
def broadcast_message(
|
||||||
message: str,
|
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
|
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])
|
.. class:: Mapping(Sized, Collection[KT], Generic[VT_co])
|
||||||
|
|
||||||
A generic version of :class:`collections.abc.Mapping`.
|
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])
|
.. class:: MutableMapping(Mapping[KT, VT])
|
||||||
|
|
||||||
|
@ -601,8 +605,8 @@ The module defines the following classes, functions and decorators:
|
||||||
|
|
||||||
Generic version of :class:`list`.
|
Generic version of :class:`list`.
|
||||||
Useful for annotating return types. To annotate arguments it is preferred
|
Useful for annotating return types. To annotate arguments it is preferred
|
||||||
to use abstract collection types such as :class:`Mapping`, :class:`Sequence`,
|
to use an abstract collection type such as :class:`Sequence` or
|
||||||
or :class:`AbstractSet`.
|
:class:`Iterable`.
|
||||||
|
|
||||||
This type may be used as follows::
|
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])
|
.. class:: Set(set, MutableSet[T])
|
||||||
|
|
||||||
A generic version of :class:`builtins.set <set>`.
|
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])
|
.. 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])
|
.. class:: Dict(dict, MutableMapping[KT, VT])
|
||||||
|
|
||||||
A generic version of :class:`dict`.
|
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:
|
This type can be used as follows::
|
||||||
return word_list[word]
|
|
||||||
|
def count_words(text: str) -> Dict[str, int]:
|
||||||
|
...
|
||||||
|
|
||||||
.. class:: DefaultDict(collections.defaultdict, MutableMapping[KT, VT])
|
.. class:: DefaultDict(collections.defaultdict, MutableMapping[KT, VT])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue