Python 类型提示:typing.Mapping 与typing.Dict

问题描述 投票:0回答:2

我正在开发一个 python3 项目,我们在整个项目中使用

typing
模块类型提示。

看来我们几乎可以互换使用

typing.Dict
typing.Mapping

有理由选择其中一种而不是另一种吗?

python python-3.x type-hinting
2个回答
155
投票

我自己设法回答了这个问题。

typing.Dict
应用于指示文字
dict
类型,支持元素类型提示,即
Dict[bytes, str]

typing.Mapping
是一个定义了
__getitem__,__len__,__iter__
魔法方法

的对象

typing.MutableMapping
是一个与 Mapping 定义相同的对象,但也具有
__setitem__,__delitem__
魔术方法。

打字。映射等。基于此表

中的 abc 类型

15
投票

根据官方 Python (3.11) 文档的建议,

typing.Dict
是注释返回类型的首选。要注释参数,最好使用抽象集合类型,例如
Mapping

此外,

typing.Dict
自 3.9 版本以来已被弃用。赞成
dict

© www.soinside.com 2019 - 2024. All rights reserved.