Python 是动态类型的编程语言,这就意味着我们不需要在代码中指定数据类型。但是这么做有时候容易让人困惑,此时灵活性就成为了缺点。
从 3.5 版本开始,我们可以指定类型,但是仍然非常麻烦。3.9版本对此进行了改进,大家看下面的这个例子:
▲左侧没有类型提示, 右侧有类型提示
由于某个神秘的原因,我们想通过上图所示的 add_int 函数,将相同的数字相加到一起。但是编辑器并不能很好地领会我们的意图,由于两个字符串也可以使用 + 进行连接所以并没有给出警告。
现在我们可以指定函数的参数类型为 int,编辑器就能够立即识别出上述问题。
通过类型提示,我们还能看到非常具体的类型,例如:
任何地方都可以使用类型提示,由于有了新的语法支持,看起来清爽多了。
上图我们将 sum_dict 函数的参数定义为字典类型,将其返回值定义为 int 类型。test 的定义时也指定了类型。
C++可用auto声明变量类型,让编译器去判断。python又搞类型提示。感觉是“动态语言静态化,静态语言动态化”。不过,python加的是类型提示又不是类型声明,跟静态语言还是有区别的。类型提示对调试、维护都有帮助。
PS: Python 发布了版本号为 3.9.0b3 的 beta 版,Python 3.9 的正式版预计10月发布。