Python中可选静态类型的状态?
我使用Typscript已经有一段时间了,我必须说,由于我的web开发需要,nodejs比当前的CPython实现要快,因此我更倾向于用它做更多的事情 事实上,我已经用它制作了一些基本的应用程序,甚至是桌面应用程序。我喜欢Typescript的地方在于它有可选的静态类型。这使得编码变得容易得多,更不用说intellisense在您想要快速编码并运行原型时是令人惊奇的。我在开发过程中也遇到了较少的bug 但问题就在这里,我已经使用Python一年了,我喜欢这种语言,我只是更习惯于语法。然而,我越来越多地看到,对于Python来说,可选的静态类型是一个很棒的优点。所以,我做了一些研究,我首先试图了解目前静态类型的情况。和其他人一样,我用搜索引擎找到了答案 以下是我读过的一些信息来源: 如果您看看这里的实现(摘自上面的链接): 现在,这看起来非常类似于Typescript中的实现。然而,如果你看看日期,它可以追溯到2004年 然后,我又看了一张BDFL,Guido制作的幻灯片: 你又看到了同样的修辞。然而,我还没有找到任何关于这方面的新信息 我还研究了如何强制使用静态类型 所以,我想问,在Python中添加可选静态类型的情况或状态是什么?或者我们需要为Python3发明类似Typescript的东西吗 我认为可选的静态类型很重要,因为在我自己非常有限的经验中,我已经看到像Typescript和C#这样的东西工作得更好,因为在创建复杂类或大型项目时,我已经看到静态类型在帮助我更快、无错误地编写代码方面已经走了很长的路。我肯定我没有这里的大多数开发人员那么好,但这是我的看法。这就是为什么我觉得这个问题很重要。我的意思是,如果你有像C#这样具有Python提供的漂亮语法的语言的可选类型,那么Python可能是不可阻挡的(耶!) 我对此做了一些研究,但我没有得到任何实质性的东西,所以我希望so的一些杰出和明智的成员能够阐明这个问题 或者我们需要为Python3发明类似Typescript的东西吗 这是!!!:-)Python中可选静态类型的状态?,python,python-3.x,static-typing,Python,Python 3.x,Static Typing,我使用Typscript已经有一段时间了,我必须说,由于我的web开发需要,nodejs比当前的CPython实现要快,因此我更倾向于用它做更多的事情 事实上,我已经用它制作了一些基本的应用程序,甚至是桌面应用程序。我喜欢Typescript的地方在于它有可选的静态类型。这使得编码变得容易得多,更不用说intellisense在您想要快速编码并运行原型时是令人惊奇的。我在开发过程中也遇到了较少的bug 但问题就在这里,我已经使用Python一年了,我喜欢这种语言,我只是更习惯于语法。然而,我越来
就我个人而言,我认为要么他们会合并,要么Python会提出他们自己的解决方案。希望这很快发生 这听起来像什么?(我不确定你在找什么)@SolidSnake-Cython使用类型优化生成的二进制文件;因此,它的类型本质上与python运行时类型相同,只需预先声明即可。它的用途非常好,但是Cython/python运行时类型系统对于任何非平凡的静态类型检查都没有用处(作为一个简单的例子,它没有泛型)。不幸的是,C#yet.mypy项目中的静态类型没有合并到python中,但是它与python类型提示框架兼容(在Python3.5中添加为)。
mypy
还可以作为对该类型和其他类型相关PEP的任何更改的测试场。自2019年起,mypy是python的参考类型检查器。Guido(python的创建者)是其开发人员之一,并且有许多与python中可选静态类型相关的官方PEP:PEP 484(类型提示)、PEP 589(类型提示)、PEP 586(文字类型)
from StringIO import StringIO
def foo(f: StringIO) -> str:
f.write("hello")
return f.getvalue()
f1 = StringIO("booh+")
print foo(f1) # prints "booh+hello"