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])
到此这篇关于typing.Dict和Dict的区别及它们在Python中的用途小结的文章就介绍到这了,更多相关typing.Dict和Dict的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!