首页 > 解决方案 > 如何在c中调用静态pyobject类型的c函数

问题描述

我想在那个 c 程序内部调用我在我的 c 程序中描述的静态 PyObject 类型的函数。如何调用这个函数?(Pyobject self) 参数是什么?我知道“args”参数将是任何模块名称。

我试过打电话mynewfunction("",Pfunc)。这里 mymynewfunction定义为static PyObject mynewfunction(Pyobject *self, PyObject *args)。但它没有用。之后如何从 C 内部调用此函数PyInitialize()?我会用什么代替*self?

#include <Python.h>
 static PyObject *string_arr_conversion(PyObject *self, PyObject args){
     Pyobject *str_arr;
     int i;
     .......
     .......
 }
 int main(int argc,char *argv[]){
     ............
     ............
     Py_Initialize();
     .............
     string_arr_conversion("",pFunc);
 }

在这里,我将 self 参数保留为空。我们需要用什么来代替自我论证?或者如何在 c 中调用这个函数?

标签: pythoncpython-3.xpython-2.7embedding

解决方案


由于这似乎是一个函数而不是一个方法,因为它不属于一个类,所以你可以使用NULLself. 所以用类似的东西调用函数

 string_arr_conversion(NULL, pFunc);

就是你要找的。


推荐阅读