c调用python参数_从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()<

for(VECF::iterator iter = spec.begin();iter != spec.end();iter ++)

{

pAbsorb = Py_BuildValue("f",*iter);

PyTuple_SetItem(pSpec,static_cast(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++中传递过来不一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值