Python 3.5 终于将 Type Hint(类型提示)官方化

来源:互联网 发布:数据库开发前景知乎 编辑:程序博客网 时间:2024/05/22 17:13

Python 3.5 终于将 Type Hint(类型提示)官方化

很久以前,我刚接触 Python 的时候,是很喜欢的,程序库很全,语法也很简单,一些在其他语言里要写很多行的事情,Python 里很少几行就搞定了。于是我用它写了不少小玩意儿,多半是在校时候的课程实践,诸如图像处理和人工智能的算法之类。当时最大的不爽,就是踏破铁鞋也找不到一个智能提示很强的 IDE。嗯我是被 IDE 宠坏的孩子,没有好的智能提示就很不安。

后来由于工作关系,PHP 写得比较多。显然坊间对 PHP 都是各种批评,但不管怎么说,PHP 作为一个动态弱类型语言,但大家都还常用 Type Hint,IDE 也比较给力(PHPStorm)。当然像 Java 和 C# 这样的静态强类型语言,用 IDE 写起代码来就更舒爽了。

这个时候再回过头看像 Javascript 和 Python 这样没有类型提示的动态语言,很多时候就感觉驾驭不了。心底会暗暗地想,没有类型提示编毛程。显然有这种感觉的也不只我一个,于是 Javascript 的世界里有了 Typescript (jsDoc 一定程度上也起到类型提示的作用),Python 的世界里有了 mypy。

Typescript 的在 Javascript 世界里的接纳程度,确实是逐渐升高了,看看 AngularJS,看看 Egret。

Python 世界里呢,似乎情况要更复杂一些,Python2 和 Python3 的分歧问题直到今天也没有完全解决,更别说类型提示了。文末有个视频,是今年 Python 的创始 Guido 在 PyCon 2015 US 上关于 Type Hint 的演讲。看起来 Guido 本人也是很早就在考虑这件事情了,只是这件事情一直都不是很高优先级的。

直到最近, 看起来 Guido 及若干 Google、DropBox 的童鞋觉得类型提示还是很有必要的,于是有了 PEP 0484。

照 Guido 自己说,Type Hint (类型提示) 有几个好处,总结起来说还是“帮你及早发现 Bug,编程更容易”。不过和 Python 2到3 的变化相比,Guido 说这个类型提示的加入是 “渐进的”,“可选的”,并没有破坏任何事情,而且本身就是建立在很多现有的第三方库的基础上(如mypy),而且可以向后兼容至 Python 3.2。另外就是 Guido 表示,在官方化之前,其实 Google、DropBox、PyCharm 都有自己的一套,统一起来的话,应该会获得更好的支持和更广泛的应用。

我个人其实一直非常期待 “类型化的 Python”,让 Python 的简单语法和类型安全、更聪明的 IDE辅助结合起来,应该是一种更舒爽的体验,现在它终于要来了~

最后是我从 PyVideo 搬运到优酷的 Guido 演讲,希望大家喜欢~

0 0
原创粉丝点击