【发布时间】:2022-01-17 04:55:58
【问题描述】:
据我了解,Python2 的类型提示约定类似于:
def geo_series(r, n) # type: (float, int) -> float
return (1-r**n)/(1-r)
这已被 Python3 的系统所取代,如下所示:
def geo_series(r: float, n: int) -> float:
return (1-r**n)/(1-r)
我的问题是:Python3 系统比 Python2 系统有什么优势?在我看来,它们包含相同的信息。由于无论如何类型检查都是由外部工具完成的,所以我认为将类型提示放在注释中并没有什么重大缺点。
我错过了什么吗?我最好的猜测是,在某些情况下,您可以创建一些古怪的类型,从而使 python3 类型检查比等效的 python2 提供更多信息?
【问题讨论】:
-
提示更接近变量,这使得它们更容易读写。
-
# type: (float, int) -> float是一个注释,可能会或可能不会被 IDE 更具体地解释。类型注释是代码的一部分。 -
注解可以在运行时被any代码检索。注释通常会被删除,因此只有实际读取
.py文件的代码才能看到。
标签: python python-3.x python-2.7 type-hinting