我想创建一个python的c扩展,它接受一个整数,两个numpy数组作为参数。怎么做?
谢谢。
这有效:
#include "Python.h"
#include "numpy/arrayobject.h"
static PyObject* test4 (PyObject *self, PyObject *args)
{
int m;
if (!PyArg_ParseTuple(args, "i", m))
{
return NULL;
}
}
这也有效:
#include "Python.h"
#include "numpy/arrayobject.h"
static PyObject* test4 (PyObject *self, PyObject *args)
{
PyArrayObject *a_array
PyArrayObject *ja_array
if (!PyArg_ParseTuple(args, "O!O!",
&PyArray_Type, &a_array,
&PyArray_Type, &ja_array))
{
return NULL;
}
}
以下不起作用:
#include "Python.h"
#include "numpy/arrayobject.h"
static PyObject* test4 (PyObject *self, PyObject *args)
{
PyArrayObject *a_array
PyArrayObject *ja_array
int m;
if (!PyArg_ParseTuple(args, "iO!O!",
&m,
&PyArray_Type, &a_array,
&PyArray_Type, &ja_array))
{
return NULL;
}
}
编译时出现的错误是:
error: expression must have integral type
&a_array
^
我可以将整数作为numpy数组传递给函数......但事情应该更简单。