我知道 Python 主要比 fortran 和 c/c++ 等语言慢,因为它是解释性的而不是编译性的。
我还读到的另一个原因是它非常慢,因为它是动态类型的,即您不必声明变量类型,它会自动执行。这非常好,因为它使代码看起来更清晰,而且您基本上不必太担心变量类型。
我知道这样做没有很好的理由,因为您可以只包装例如。 fortran 代码与 Python,但是否可以手动覆盖 Python 的这种动态类型特性并手动声明所有变量类型,从而提高 Python 的速度?
最佳答案
如果我将您的问题解释为“Python 有静态类型模式吗?”,那么 Cython可能最接近于提供该功能。
Cython 是 Python 语法的超集——几乎任何有效的 Python 代码也是有效的 Cython 代码。 Cython 编译器将准 Python 源代码转换为非人眼 C 语言,然后可以将其编译为共享对象并作为 Python 模块加载。
您基本上可以使用您的 Python 代码并根据需要添加任意数量的静态类型声明。在未声明类型的地方,Cython 将添加必要的样板文件以正确推断它们,但代价是运行时性能较差。这实质上允许您在完全动态类型的 Python 代码和完全静态类型的 C 代码之间的连续体中选择一个点,具体取决于您需要多少运行时性能以及您准备花多少时间进行优化。它还允许您直接调用 C 函数,使其成为为外部库编写 Python 绑定(bind)的一种非常方便的方式。
要更好地了解它在实践中的工作原理,请查看 official tutorial .
关于python - Python 可以静态类型化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233268/