我有Python代码,它执行以下操作:
从模拟软件中获取优化问题。
使用多线程IPOPT算法解决此优化问题。
将2中获得的结果转换为另一个维度。
以图形的形式显示结果。
现在我用C ++写了一个类来解决优化问题(第2点)以提高速度和其他一些原因,它从第1点(问题,约束等)获取输出并给出一个输出进一步传递到第3点(Python中的一个函数)。
如何将从1获得的这些变量传递给2中的C ++类,然后再传递回3中的Python函数?以下就是我的尝试:
我使用SWIG来生成包装文件。 SWIG的接口文件,用于为2.cpp
和2.h
C ++文件创建包装器:
/* File: 2.i */
%module t2c_main
%{
#define SWIG_FILE_WITH_INIT
#include "../include/2.h"
%}
%include ../include/2.h
运行SWIG后,我得到了一个Python文件和一个cxx文件。现在我在使用这些文件时遇到了问题;如上所述,我需要传递变量。
答案 0 :(得分:0)
您如何准确传递变量显然取决于您如何存储数据。我们假设t2c_main模块包含一个方法addDataPoint(int,int);
您将采取以下措施:
您现在应该可以执行类似
的操作t2c.addDataPoint(5,10)
在您的python代码中。