24小时热门版块排行榜    

查看: 366  |  回复: 0

一家之虫

新虫 (初入文坛)

[求助] 从C++里调用python,传递参数时出现异常

先看代码
C++
    pArg = PyTuple_New(6);
    PyTuple_SetItem(pArg,0,Py_BuildValue("i",NUM_OF_SPECTRUM));
    PyTuple_SetItem(pArg,1,Py_BuildValue("i",TURB_INDEX));
    PyTuple_SetItem(pArg,2,Py_BuildValue("i",CN_START_IDX));
    PyTuple_SetItem(pArg,3,Py_BuildValue("i",CN_END_IDX));
    pSpec = PyTuple_New(spec.size());
    qDebug()<<spec;
    for(VECF::iterator iter = spec.begin();iter != spec.end();iter ++)
    {
        pAbsorb = Py_BuildValue("f",*iter);
        PyTuple_SetItem(pSpec,static_cast<int>(iter-spec.begin()),pAbsorb);
        Py_XDECREF(pAbsorb);
    }
    PyTuple_SetItem(pArg,4,pSpec);
    PyTuple_SetItem(pArg,5,Py_BuildValue("s",MODEL_PARAM_FILE));
    pObject = PyEval_CallObject(pClass,pArg);

Python
class model_TCN(object):
        def __init__(self,spectrum_pixel,turbidity_index,start_position,end_position,spectrum,model_param_name):
                self.TURB_INDEX = turbidity_index
                self.SPEC_PIXEL = spectrum_pixel
                self.START_POSI = start_position
                self.END_POSI = end_position
                f_model_param = open(model_param_name,'r')
                self.model_param = pk.load(f_model_param)

其他参数都能传递成功,唯独第五个参数,一个Tuple传递异常,python对象获得了这个tuple,但tuple中的值与C++中传递过来不一致
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 一家之虫 的主题更新
信息提示
请填处理意见