gpt4 book ai didi

python - C 库的 python 包装的可维护性

转载 作者:太空狗 更新时间:2023-10-29 21:53:26 26 4
gpt4 key购买 nike

我有一个设计糟糕的大(> 300个公共(public)函数>200个数值常量在头文件中用#define定义)我必须用 Python 包装。我有 dllh 文件。该库每年更新一次,直到现在都以向后兼容的方式更新(即仅添加函数,常量保持其数值等)。但我不能保证,因为我不控制图书馆。

使用 ctypes,我看到了两种用 Python 包装它的方法:

  1. Mapping every constant and function to python, 1 to 1
  2. Redefining the API in Python and making calls to the library.

第一个可以通过头文件以(大致)自动的方式完成,因此更易于维护和升级,第二个需要大量 python 代码,但它更易于使用。

根据您对此类问题的经验和一些示例提出一些意见,我将不胜感激。

最佳答案

我最近使用了ctypesgen为 SDL 和补充库(SDL_image、SDL_ttf、SDL_mixer)创建 ctypes 包装。

对我来说,效果相当不错。它生成 Python 2.x,但我能够通过使用“2to3”实用程序获得所需的 3.x 代码。

我认为使用 ctypes 包装作为更“pythonic”api 的基础是个好主意,这基本上就是我对 pslab 所做的(在非常简单的层面上)。模块。

因此,如果您想做类似的事情,那将是一种方法。

关于python - C 库的 python 包装的可维护性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12770077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com