Python有内联语句吗?

时间:2012-09-01 17:25:05

标签: python inline

python是否与C中的inline类似?

如果没有,我怎样才能加快功能的执行?

5 个答案:

答案 0 :(得分:7)

不,python没有这样的陈述。

但是,如果函数调用的开销是一个问题,使用像Python这样的脚本语言是错误的选择。考虑将相关部分移动到C扩展中。如果您选择Cython

答案 1 :(得分:1)

不,不。但是有几种加速Python执行的机制,例如你可以从Python程序调用本机C代码,例如使用Boost.Python

  

Boost Python Library是一个用于连接Python和C ++的框架。它允许您快速无缝地将C ++类函数和对象公开给Python,反之亦然,不使用特殊工具 - 只需使用C ++编译器。它旨在非侵入性地包装C ++接口,因此您不必更改C ++代码以包装它,使Boost.Python成为将第三方库公开给Python的理想选择。该库使用高级元编程技术简化了用户的语法,因此包装代码具有一种声明性接口定义语言(IDL)的外观。

答案 2 :(得分:1)

您可以从scipy下载一个名为Weave的库,它允许您将c或c ++代码内联到python代码中。这会加速它。

然而,python本身并没有内联函数。

还有其他一些库旨在加速计算,如scipy,numpy,我认为matplotlib是一个非常好的库。还有用于并行计算的iPython。

祝你好运。

答案 3 :(得分:0)

我不知道Python中的等效内联功能。

你可以做的最好的事情是加速一个函数来检查算法,假设你已经用尽了惯用语言功能(比如列表理解等)。

答案 4 :(得分:0)

Python会为您优化代码,但您对它的工作方式没有任何影响。要加速任何python代码的加载时间,可以在执行前将其编译为字节码。