向 python 函数添加类型提示时,哪一个是首选?
from typing import List, Dict
def example_1() -> List[Dict]:
pass
def example_2() -> List[dict]:
pass
我知道如果我想在 dict 中指定键和值类型,我需要使用 Dict,但我不想这样做。
两者有什么区别吗? 如果是的话,哪个是首选?
从Python 3.9开始,标准集合可以添加下标。
typing
变体已被弃用,因此:
元组#打字.元组
列表#打字。列表
dict # 打字.Dict
设置#打字。设置
...
不推荐从
导入这些内容。由于 PEP 563 以及尽量减少输入对运行时影响的目的,此弃用不会生成typing
。相反,当被检查程序的目标版本被标记为 Python 3.9 或更高版本时,类型检查器可能会警告此类已弃用的用法。建议在整个项目范围内消除这些警告。DeprecationWarning
已弃用的功能将从 Python 3.9.0 发布 5 年后发布的第一个 Python 版本中的
模块中删除。typing
它如何影响类型覆盖率没有实际差异。
作为风格/可读性的问题,我建议使用
Dict[Any, Any]
(或者 dict[Any, Any]
如果您使用的是支持该功能的版本),因为它使读者更明显地意识到没有类型检查字典的键和值。 新手可能不明白裸露的 dict
/Dict
类型有多不安全,但如果他们看到那里的 Any
,就更有可能认识到危险。