除了性能之外,python应用程序是否有任何使用C的目的?

时间:2010-02-20 20:55:52

标签: python c performance bytecode

如果Python像C一样快,后者会出现在python应用程序/库中吗?

示例:如果Python很快,那么P将完全用Python编写PIL吗?

4 个答案:

答案 0 :(得分:7)

访问“遗留”C库和操作系统设施。

答案 1 :(得分:5)

虽然您当然可以使用ctypes来访问现有的C代码,但在足够复杂的情况下,您可能不一定想要:当您编写为(专为并且在C中实现,不进行编译可能意味着调用者方面的小错误,只是拒绝在C中正确编译,可能导致整个应用程序崩溃。

因此,使用C代码(而不是ctypes)来重用良好的现有C代码可能很有意义(当然,Cython也很好,因为它确实生成了C代码,如果出现调用方错误,则无法编译; - )。

从头开始重新编码所有内容,而不是重用好的,现有的,可靠的和精细调整的代码,当然没有多大意义 - 有很多有趣的新问题要征服,花时间模仿对于已经被征服的问题,现有的,非常好的解决方案很可能 可能是最好,最有成效,最令人满意的花费时间的方式; - 。)

答案 2 :(得分:2)

在Python中使用C模块是有意义的:

  • 性能
  • 不会移植到Python的库(例如,由于性能原因)或使用特定于操作系统的函数
  • 脚本。例如,许多游戏使用Python,Lua和其他语言作为脚本语言。因此,他们将C / C ++函数暴露给Python。

至于你的例子:是的,但是Python本身比C慢。如果两者同样快,那么使用Python是有意义的,因为C代码通常更容易受到攻击(缓冲区溢出和东西)。

答案 3 :(得分:0)

访问硬件。