最近,Python 3.6添加了静态类型作为强制某些类型的方法。我曾经从Cython获得此功能,与香草Python相比获得了高度优化的功能。
然后我的问题是:当使用新的Python静态类型时,我们还会提高性能吗?每种方法的优缺点?
答案 0 :(得分:2)
在任何现有的python 3.7或更早版本中,没有静态类型。
CPython 3.6中对可选的类型注释的支持(也移植到3.5)有助于外部工具(例如静态代码分析器)验证程序中是否一致使用了类型。
类型提示对字节码的编译或执行没有影响。
与静态类型语言中的变量声明相反,注释语法的目的是提供一种通过抽象语法树和 annotations 为第三方工具和库指定结构化类型元数据的简便方法属性。
请注意,但是在Cython中可以使用类型提示语法来定义C类型(Type Declaration Syntax)。
答案 1 :(得分:1)
Python中的静态类型不能使其成为已编译的编程语言。因此,就性能而言,您应该始终从Cython获得更好的性能(编译应始终胜过Interpreted)。
Python新增的静态类型的主要目的是通过在此途中牺牲一些Python的原理来无缝地执行类型检查。
简而言之:Cython代表速度,Python3.6代表解释性/更多pythonic方法。