【问题标题】:何时/为什么使用类型模块中的类型作为类型提示
【发布时间】:2022-01-23 16:46:13
【问题描述】:

什么是类型提示的“正确”方式? 我的 IDE(和生成的代码)使用以下任一选项都可以很好地用于类型提示,但是可以从类型模块中导入某些类型。是否偏好使用从类型模块导入而不是内置函数(如列表或字典)?

例子:

from typing import Dict
def func_1(arg_one: Dict) -> Dict:
    pass

def func_2(arg_one: dict) -> dict:
    pass

【问题讨论】:

    标签: python types type-hinting


    【解决方案1】:

    “正确”的方法是尽可能使用内置函数(例如 dict 而不是 typing.Dict)。仅当您使用 Python typing.Dict。在旧版本中,您不能在内置函数中使用像 dict[str, Any] 这样的通用注释,您必须使用 Dict[str, Any]。见PEP 585

    【讨论】:

      【解决方案2】:

      typing.Dictdict 没有太大区别。

      只是typing.Dict实际上是一个通用类型,所以它允许你在括号内指定子类型。

      喜欢:

      from typing import Dict
      def func_1(arg_one: Dict[str, int]) -> Dict:
          pass
      

      typing.Dict 仅在您的 Python 版本低于 3.9 时才需要。否则,您可以对常规 dicts 执行相同操作。

      示例 Python >= 3.9:

      def func_1(arg_one: dict[str, int]) -> dict:
          pass
      

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 2018-06-03
        • 1970-01-01
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多