我的 PyFLoat_ParseTuple
调用总是返回 false,从 python 端调用正确。
我正在为 Python 包装我的 C++ 并使用 Python 扩展。
我有一个成功的项目,并以此为基础生成了当前的项目。
我的 python 运行总是崩溃,在调查期间我将我的代码减少到以下最小代码以重复它。
如果我将 C++/Python 端都更改为非参数调用,它会按预期工作。 但是当我传入 args 时总是打印“解析错误”。
C++:
static PyObject *myfunc(PyObject *self, PyObject *args)
{
float v[6];
if (!PyArg_ParseTuple(args, "ffffff", v,v+1,v+2,v+3,v+4,v+5));
{
//I can alway see this prited.
cerr<<"Parse error\n";
return NULL;
}
return PyString_FromFormat("No error!\n");
}
python :
print func(0.1,0.2,0.3,0.4,0.5,0.6)
最佳答案
一个非常简单的错字:
if (!PyArg_ParseTuple(args, "ffffff", v,v+1,v+2,v+3,v+4,v+5));
- 看到 if
末尾的分号 ;
?
关于python - 为什么 PyArg_ParseTuple 总是返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55954300/