我听说Ctypes可能在Python和Windows中导致崩溃(或停止错误)。我应该远离它们的使用吗?我在哪里听到的?当我尝试控制Windows,自动化等各个方面时,这又回到了当初。

我听说过闷闷不乐,但我经常看到Ctypes。这里有危险吗?如果是这样,我应该注意什么?

我确实搜索了ctype pro con python。

最佳答案

在健壮性方面,我仍然认为swig在某种程度上优于ctypes,因为有可能让C编译器为您更全面地检查事情;但是,由于已经提到了argtypes功能@Mark,因此到目前为止(在早期的ctypes verson中隐约可见),这还算是没有什么根据。但是,毫无疑问,ctypes的运行时开销比swig(以及sip和boost python和其他“包装”方法)重要得多:因此,我认为ctypes是实现其中一些功能的便捷方式当调用发生在关键瓶颈之外时,使用DLL,而不是在对性能有严格要求的情况下使大型C库可供Python使用的方法。

为了在swig(&c)的运行时性能和ctypes的便利性之间找到一个很好的中间方法,它的额外好处是能够添加更多的代码,这些代码可以使用Python语法的子集,但运行速度仅约为C代码。考虑Cython-一种类似python的语言,可以编译为C语言,专门用于编写Python可调用的扩展并包装C库(包括那些仅可作为静态库而不是DLL使用的库):ctypes不允许您玩那些;-)。

关于python - Ctypes赞成和反对,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1318736/

10-13 00:01