性能比较静态键入Python 3.6+与Cython

时间:2018-08-08 09:20:18

标签: python cython static-typing

最近,Python 3.6添加了静态类型作为强制某些类型的方法。我曾经从Cython获得此功能,与香草Python相比获得了高度优化的功能。

然后我的问题是:当使用新的Python静态类型时,我们还会提高性能吗?每种方法的优缺点?

2 个答案:

答案 0 :(得分:2)

在任何现有的python 3.7或更早版本中,没有静态类型

CPython 3.6中对可选的类型注释的支持(也移植到3.5)有助于外部工具(例如静态代码分析器)验证程序中是否一致使用了类型。

类型提示对字节码的编译或执行没有影响。

来自CPython 3.6 What's new

  

与静态类型语言中的变量声明相反,注释语法的目的是提供一种通过抽象语法树和 annotations 为第三方工具和库指定结构化类型元数据的简便方法属性。

请注意,但是在Cython中可以使用类型提示语法来定义C类型(Type Declaration Syntax)。

答案 1 :(得分:1)

Python中的静态类型不能使其成为已编译的编程语言。因此,就性能而言,您应该始终从Cython获得更好的性能(编译应始终胜过Interpreted)。

Python新增的静态类型的主要目的是通过在此途中牺牲一些Python的原理来无缝地执行类型检查。

简而言之:Cython代表速度,Python3.6代表解释性/更多pythonic方法。