我正在尝试将 C++ 库作为 Python 模块提供。看来 SIP 是完成这项工作的最佳工具。(如有错误,请指正。)
一个类看起来程序员正试图解决 c 缺乏动态类型的问题:
class Item{
private:
enum ITEMTYPE{TYPE_INT,TYPE_FLOAT,TYPE_INT_ARRAY,TYPE_FLOAT_ARRAY};
enum ITEMTYPE type;
int intValue;
int* intArrayValue;
float floatValue;
float* floatArrayValue;
public:
enum ITEMTYPE getType();
int getItemCount();
int getIntValue();
int* getIntArrayValue();
float getFloatValue();
float* getFloatArrayValue();
...
};
我在任何地方都找不到说明如何处理返回数组的函数的文档。至少,我希望能够从 Python 调用 getIntArrayValue() 。更好的是有一个 Python 函数自动调用 getType(),然后调用其中一个 get???Value() 来获取值(如果需要,调用 getItemCount() 来确定数组长度,处理数组作为 numpy 或元组。
我当前的 .sil 文件如下所示:
class Item{
%TypeHeaderCode
#include<Item.h>
%End
public:
enum ITEMTYPE{
TYPE_INT=0,
TYPE_FLOAT=1,
TYPE_INT_ARRAY=2,
TYPE_FLOAT_ARRAY=3,
};
ITEMTYPE getType();
int getItemCount();
int getIntValue();
//int*getIntArrayValue();
float getFloatValue();
//float*getFloatArrayValue();
};
提前致谢。我一直在努力寻找,但还是一无所获。