Python中可选静态类型的状态?

时间:2013-08-21 17:50:57

标签: python python-3.x static-typing

我已经玩了一段时间的Typscript了,我得说,捆绑了这样一个事实:nodejs比CPython的当前实现更快,因为我的Web开发需求,我更倾向于做更多的事情用它。

事实上,我已经制作了几个基本的应用程序,甚至是桌面版。我喜欢Typescript的事实是有可选的静态类型。这使得编码通常更容易,更不用说当你想快速编码并运行原型时,intellisense是惊人的。我在开发过程中也遇到了更少的错误。

但问题就在这里,我已经使用Python一年了,我喜欢这种语言,而且我更习惯于语法。但是,越来越多,我看到可选的静态类型对于Python来说可能是一个很棒的加分点。所以,我做了一些研究,我首先尝试了解静态类型的情况。就像其他人一样,我用搜索引擎来查找。

这些是我读过的一些信息来源:

  1. Adding Optional Static Typing to Python
  2. 如果你看一下这里的实现(摘自上面的链接):

    from StringIO import StringIO
    
    def foo(f: StringIO) -> str:
        f.write("hello")
        return f.getvalue()
    
    f1 = StringIO("booh+")
    print foo(f1)  # prints "booh+hello"
    

    现在,这看起来与Typescript中的实现非常相似。但是,如果您查看日期,它会一直追溯到 2004

    然后,我又看了一眼Guido制作的BDFL幻灯片:

    1. Why Add Static Typing?
    2. 再次,你看到同样的言论。但是,我无法找到任何关于此的新信息。

      我还看了@ this SO answer强制执行静态类型。

      所以,我想问一下,在Python中添加可选静态类型的情况或状态是什么?或者我们是否需要发明像Typescript这样的东西但是对于Python 3?

      我认为可选的静态类型很重要,因为在我自己非常有限的经验中,我已经看到像Typescript和C#这样的东西工作得更好,因为在制作复杂的类或制作大型项目时,我已经看到静态类型已经在帮助我更快地编写代码并且没有错误方面走了很长的路。我相信我并不像这里的大多数开发人员那么好,但这是我的看法。这就是为什么我觉得这个问题很重要。我的意思是如果你有一个像C#这样的语言的可选类型和Python提供的漂亮的语法,那么Python可能是不可阻挡的(是的!)。

      我已经对此做过一些研究,但我没有任何实质性的内容,所以我希望SO的一些优秀和明智的成员能够阐明这个问题。

1 个答案:

答案 0 :(得分:18)

  

或者我们是否需要发明像Typescript这样的东西,但对于Python 3?

那是 mypy !!! : - )

就个人而言,我认为他们要么合并,要么Python会提出他们自己的解决方案。希望这很快就会发生!!!