web-dev-qa-db-fra.com

Python conseils de type: typing.Mapping vs typing.Dict

Je travaille sur un projet python3 où nous utilisons les conseils de type de module typing partout.

Il semble que nous utilisons typing.Dict et typing.Mapping à peu près de façon interchangeable.

Y a-t-il une raison de préférer l'un à l'autre?

21
stacksonstacks

J'ai réussi à répondre à cela moi-même.

typing.Dict doit être utilisé pour indiquer un type dict littéral avec prise en charge des indications de type d'élément, c'est-à-dire Dict[bytes, str]

typing.Mapping est un objet qui définit le __getitem__,__len__,__iter__ méthodes magiques

typing.MutableMapping est un objet qui définit la même chose que Mapping mais avec __setitem__,__delitem__ des méthodes magiques aussi.

typographie Cartographie et al. sont basés sur les types abc dans ce tablea

12
stacksonstacks