pythonpython-3.xtype-hinting

Python type hints: typing.Mapping vs. typing.Dict


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?


Solution

  • 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