小编Use*_*123的帖子

使用C扩展python:将列表传递给PyArg_ParseTuple

我一直在尝试用C扩展python,到目前为止,基于文档,我在编写小型C函数和使用Python扩展它方面取得了相当大的成功.

但是,我现在遇到了一个相当简单的问题 - 我无法找到解决方案.所以,我想做的是传递double list给我的C函数.例如,要传递int,我执行以下操作:

int squared(int n)
{
    if (n > 0)
        return n*n;
    else
        return 0;
}

static PyObject*
squaredfunc(PyObject* self, PyObject* args)
{
    int n;

    if (!PyArg_ParseTuple(args, "i", &n))
        return NULL;

    return Py_BuildValue("i", squared(n));
}
Run Code Online (Sandbox Code Playgroud)

这将int n没有任何问题传递给我的C函数命名squared.

但是,如何将一个传递list给C函数?我确实尝试谷歌并阅读文档,到目前为止,我还没有找到任何有用的东西.

如果有人能指出我正确的方向,我真的很感激.

谢谢.

c python python-c-api python-c-extension

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

python ×1

python-c-api ×1

python-c-extension ×1