在函数参数类型中使用普通 {} 和 typing.Dict 有什么区别?
What is the difference between using plain {} and typing.Dict in function parameters types?
考虑以下功能:
import typing
def foo(dict_1: {}, dict_2: typing.Dict):
pass
我想知道将 {} 用于 dict_1 和将 typing.Dict 用于 dict_2 作为参数类型是否有任何区别。
我认为没有人应该使用第一种表示法,尽管从技术上讲它没有任何问题。
一个重要的区别是 typing.Dict
支持 []
符号,该符号也允许类型提示键和值。
另请注意,自 3.9+(参见 PEP585)以来,typing.Dict
已被弃用,因为现在 builtins.dict
也支持 []
表示法。
另一个旁注,但略有 OT,在键入提示函数参数时甚至不应该使用 dict
s,因为它们太具体了。 Mapping
之类的摘要更合适,而 dict
显然适合 return 值。
考虑以下功能:
import typing
def foo(dict_1: {}, dict_2: typing.Dict):
pass
我想知道将 {} 用于 dict_1 和将 typing.Dict 用于 dict_2 作为参数类型是否有任何区别。
我认为没有人应该使用第一种表示法,尽管从技术上讲它没有任何问题。
一个重要的区别是 typing.Dict
支持 []
符号,该符号也允许类型提示键和值。
另请注意,自 3.9+(参见 PEP585)以来,typing.Dict
已被弃用,因为现在 builtins.dict
也支持 []
表示法。
另一个旁注,但略有 OT,在键入提示函数参数时甚至不应该使用 dict
s,因为它们太具体了。 Mapping
之类的摘要更合适,而 dict
显然适合 return 值。