PyObject_Call 中没有错误的 NULL 结果

NULL result without error in PyObject_Call

我目前正在编写一个 Python C 扩展来用 C 而不是 Python 执行一些计算。它工作得很好,我已经得到了一些不错的结果,但重点是,我收到以下错误:

NULL result without error in PyObject_Call

当我想创建我创建的 "C Python Object" 的实例时,有时会发生这种情况,但并非总是如此。该调用类似于以下内容:

import c_class

obj = c_class.dummy(arg1, arg2, arg3);

有人有什么建议吗?我不知道这个错误是从哪里来的,因为它有时会起作用。我有点迷路了。

当你 return NULL 从暴露给 python 的 c 函数时,你必须在之前设置错误消息,因为 returning NULL 意味着错误发生了。

如果发生错误并且您因此 returning NULL,则使用 PyErr_SetString(),如果没有发生错误,则使用

Py_RETURN_NONE;