Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I'm working on a python3 project where we use the
typing
module type hints throughout.
It seems that we use
typing.Dict
and
typing.Mapping
pretty much interchangeably.
Is there a reason to prefer one over the other?
Managed to answer this myself.
typing.Dict
should be used to indicate a literal
dict
type with support for element type hinting i.e.
Dict[bytes, str]
typing.Mapping
is an object which defines the
__getitem__,__len__,__iter__
magic methods
typing.MutableMapping
is an object which defines same as Mapping but with
__setitem__,__delitem__
magic methods as well.
typing.Mapping et al. are based on the abc types in
this table
–
–
–
–
–
As suggested by the
official python (3.11) documentation
typing.Dict
is useful for annotating return types. To annotate arguments it is preferred to use an abstract collection type such as
Mapping
.
Also,
typing.Dict
has been deprecated since version 3.9. in favor of
dict
.
Thanks for contributing an answer to Stack Overflow!
-
Please be sure to
answer the question
. Provide details and share your research!
But
avoid
…
-
Asking for help, clarification, or responding to other answers.
-
Making statements based on opinion; back them up with references or personal experience.
To learn more, see our
tips on writing great answers
.