在C中,我可以写
foobar.h中:
typedef int ARR[2];
foobar.c但是:
#include "foobar.h"
ARR arr;
现在我有一个适当大小的数组arr
。我可以在不知道大小的情况下获得该数组,我只知道类型ARR
的名称。换句话说,头文件隐藏了ARR
的实现细节 - 封装原则。
现在我想用SWIG将其翻译成Python。我有一个界面
foobar.i:
%{
#include "foobar.h"
%}
%include "foobar.h"
这对我来说就像上面一样,我应该能够使用来自foobar.h
的界面而不必知道细节。也就是说,我想在Python命令行上以某种方式使用单词ARR
来获取正确大小的数组(可能已初始化,在Python中所有内容都已初始化)。
我不想在Python中重复C语法。我想重复封装的原则。
我需要在界面中添加什么来实现这一目标?
我正在努力尝试,无法弄明白。
答案 0 :(得分:1)
通过结构或类进行封装:您可能希望迟早暴露数组大小以帮助在python端进行测试,并添加初始化值为0,reset(0),添加两个等操作ARR阵列等。然后SWIG将为您做一切。