可以强制执行类型提示吗?

时间:2020-09-10 22:30:11

标签: python types

在python中使用“类型提示”表示法有什么优势吗?

import sys
def parse(arg_line: int) -> str:
    print (arg_line) # passing a string, returning None

if __name__ == '__main__':
    parse(' '.join(sys.argv[1:]))

在我看来,它使语法变得复杂,却没有提供任何实际的好处(可能是在开发环境之内)。基于此:

  • 是否有计划让python在语言本身内包含type约束?
  • 具有“类型提示”的优点是什么?我不能像把它那样轻易地扔进文档字符串中吗?

据我所知,我在python代码库中也看不到太多-大多数类型都是手动执行的,例如:argparse.py以及我在{{ 3}}。

1 个答案:

答案 0 :(得分:1)

是否有计划让python在语言本身内包含类型约束?

几乎肯定不会,而且绝对不会在下一个主要版本之前。

具有“类型提示”的优点是什么?我不能像把它那样轻易地放入文档字符串中吗?

在我的头顶上,考虑以下几点:

  • 可以使用mypy之类的工具来验证类型提示。
  • IDE和其他工具可以使用
  • 类型提示来提供提示和技巧。例如,当您调用函数并刚刚编写了foo(时,IDE可以选择类型提示并在附近显示一个显示foo(x: int, y: List[int])的框。作为开发人员,您的优势在于您可以完全准确地获取所需的信息,而不必花费整个文档字符串。
  • 类型提示可以由functools.singledispatch之类的模块或诸如multipledispatch之类的外部库来添加其他与类型相关的功能(在这种情况下,根据名称和类型(而不仅仅是名称)分派函数调用) 。
相关问题