首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除了性能之外,python应用程序使用C还有什么其他目的吗?

除了性能之外,python应用程序使用C还有什么其他目的吗?
EN

Stack Overflow用户
提问于 2010-02-21 04:55:52
回答 4查看 192关注 0票数 1

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

例如:如果Python像C一样快,那么PIL会完全用Python编写吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-21 04:56:41

来访问“遗留”的C库和操作系统工具。

票数 7
EN

Stack Overflow用户

发布于 2010-02-21 05:08:20

当然,您可以使用ctypes来访问现有的C代码,但在足够复杂的情况下,您可能不希望这样做:当您为为C设计(并用C实现)的接口编写代码时,不进行编译可能意味着调用者一方的小错误可能会导致整个应用程序崩溃,这些错误可能只是拒绝用C正确编译。

因此,为了重用好的现有C代码,使用C代码(而不是ctypes)可能很有意义(当然,Cython也很好,因为它生成的C代码在调用方出错的情况下应该无法编译;-)。

当然,从头开始重新编写所有代码,而不是重用好的、现有的、可靠的和调得很好的代码,这两种方式都没有多大意义--有太多有趣的新问题需要克服,花时间只是模仿和已经解决的问题的现有、刚刚好的解决方案可能不是最好、最有效率和最令人满意的时间消磨方式;-)。

票数 5
EN

Stack Overflow用户

发布于 2010-02-21 05:01:04

在Python中使用C模块实现以下目的是有意义的:

不会移植到Python中的

  • Performance
  • Libraries (例如,由于性能原因)或使用特定于操作系统的functions
  • Scripting.的Python例如,许多游戏使用Python、Lua和其他语言作为脚本语言。因此,它们将C/C++函数公开给Python.

至于你的例子:是的,但Python天生就比C慢。如果两者的速度一样快,那么使用Python将是有意义的,因为C代码通常更容易受到攻击(缓冲区溢出等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2303683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档