PyArg_解析返回的frame对象而不是PyLongObj

2024-09-28 01:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用C扩展API编写一个Python模块,并尝试将一个长变量从Python传递到C函数中,然后从中获取用于表示该变量的原始PyLongObject。

我使用PyArg_Parse函数将变量解析为原始C指针。我希望PyObject返回的类型是PyLongObject,但是每当我检查解析对象的typename值时,它总是类型“frame”?我错过了什么?

static PyObject* test(PyObject *self, PyObject *args)
{
    PyObject *num;

    if(!PyArg_Parse(args, "0", &num))
    {
        //ERROR YO
    }

    printf("\n%s\n", num->ob_type->tp_name);

    Py_RETURN_NONE;
}

Tags: 模块对象函数api类型parseargsstatic
1条回答
网友
1楼 · 发布于 2024-09-28 01:29:20

看起来好像您传递的参数格式规范无效(从未在那里看到0(零))。结果,您得到了一个不需要处理的异常,但将“num”中的返回值视为成功的值。除此之外,您还使用了一个不推荐使用的函数来解析参数。在

相关问题 更多 >

    热门问题