何时/为何使用类型模块中的类型作为类型提示

g_u*_*int 10 python types type-hinting

类型提示的“正确”方式到底是什么?我的 IDE(和生成的代码)使用以下任一选项可以很好地进行类型提示,但某些类型可以从输入模块导入。与内置函数(如列表或字典)相比,是否优先使用从打字模块导入的内容?

例子:

from typing import Dict
def func_1(arg_one: Dict) -> Dict:
    pass
Run Code Online (Sandbox Code Playgroud)

def func_2(arg_one: dict) -> dict:
    pass
Run Code Online (Sandbox Code Playgroud)

Exp*_*ple 11

“正确”的方法是尽可能使用内置函数(例如dictover typing.Dict)。typing.Dict仅当您使用 Python < 3.9 时才需要。在旧版本中,您无法像内置注释一样使用通用注释dict[str, Any],您必须使用Dict[str, Any]. 参见PEP 585