C ++部分
我有一个类a
,带有 public 变量2d int array b
,我想在python中打印出来。(我想要访问它的方式是{{1} })
我已经能够包装大部分代码,现在我可以在python中调用类a中的大多数函数。
那么如何在python中读取b?如何使用numpy.i将其读入一个numpy数组(我找到一些关于如何使用函数而不是变量的解决方案)?有没有办法可以读取c ++库中的任何数组?或者我必须处理接口文件中的每个变量。
现在当我尝试在python中使用它时,b是a.b
PS: 1.如果可能,我不想修改cpp部分。
所以请不要将我的链接转介给我的问题,谢谢。
答案 0 :(得分:0)
如果您可以添加C ++定义的代码片段(如果使用int **则为C),您的问题将更容易回答。当你说" 2d int array"时,你的意思是一般的int **吗?数组大小是否已预先知道?
无论如何,您可以使用numpy.i,但这取决于数组的详细信息。
看到这个有点相关的问题: Swig and multidimensional arrays
答案 1 :(得分:0)
您会发现,如果您使用一维数组来访问元素,则可以更轻松地在语言之间来回传递,例如: arr[y*WIDTH+x]
。
由于您使用C ++进行操作,因此您甚至可以将这些数组包装在具有良好operator()(int x, int y)
方法的类中,以便在C ++端使用。
实际上,这是Numpy用于数组的内部表示:它们都是一维的。