我正在将 C++ 类绑定到 Python,并为之前的问题找到了一个有趣的解决方案,不幸的是,这导致了另一个问题,似乎也没有简单的答案。
我将每个函数包装成一个“可调用”PyObject,使其可调用的是定义调用函数(C 端这是 PyTypeObject 中的 tp_call 方法)。
tp_call 似乎采用了一个三元函数,它只接受 (PyObject*, PyObject*, PyObject*) 作为其参数列表。
现在的问题是我需要这个函数来代替 PyCFunction,它只接受参数(PyObject* self,PyObject* args)。现在 python 端这可以很容易地完成,但是当我只想要一个二进制函数时,C 端似乎需要三元函数,所以无论如何让可调用函数简单地采用 PyCFunction 指针或一种封装它的方法吗?