typing.Dict和Dict的区别以及它们在Python中的用途
当在 Python 函数中声明一个 dictionary 作为参数时,我们一般会把 key 和 value 的数据类型声明为全局变量,而不是局部变量。
如果我们需要将字典的键和值的数据类型声明为一个局部变量,该怎么办?这篇文章讨论了我们如何使用typing.Dict
的类型提示,并将其与通常的dict
函数区分开来。
typing.Dict
和dict
之间的区别以及它们在 Python 中的用途
在 Python 函数中声明一个字典作为参数时,使用typing.Dict
和普通的dict
在现实世界中没有区别。
然而,typing.Dict
函数是一个通用类型的函数,可以让我们指定键和值的数据类型,使其更加灵活。
此外,由于我们不能静态地推断容器中通用保存的对象的类型信息,抽象基类已经被扩展,以支持订阅来表示容器元素的通用类型。
def exampleFunction(typing.Dict[str, int])
例如,在我们项目生命周期的某一时刻,我们想更精确地定义字典参数,此时将typing.Dict
扩展为typing.Dict[key_type, value_type]
比用dict()
替换整个字典是更小的改变。
我们可以通过使用Mapping
或MutableMapping
类型使我们的字典更通用。dictionary 是一种映射,但是我们可以创建满足映射接口的其它对象。
def exampleFunction(typing.Mapping[str,int])
注意,Python 并不强制执行类型提示。它们只是提示,并不用于在运行时或编译时实现类型。
然而,如果我们使用 Python 3.9 及以上版本,Python 已经废弃了typing.Dict
,而是在内置的dict()
命令中强制执行类型提示。我们可以在 Python 中声明一个字典时指定类型。
def exampleFunction(dict[str,int])
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。