栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从C / C ++调用python方法,并提取其返回值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从C / C ++调用python方法,并提取其返回值

如前所述,使用PyRun_SimpleString似乎是个坏主意。

您绝对应该使用C-
API(http://docs.python.org/c-api/)提供的方法。

阅读介绍是了解其工作方式的第一件事。

首先,您必须了解PyObject,它是C API的基本对象。它可以代表任何类型的python基本类型(字符串,浮点数,整数,…)。

存在许多函数,例如将python字符串转换为char *或PyFloat转换为double。

首先,导入您的模块:

PyObject* myModuleString = PyString_FromString((char*)"mytest");PyObject* myModule = Pyimport_import(myModuleString);

然后获得对您的函数的引用:

PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");PyObject* args = PyTuple_Pack(1,PyFloat_FromDouble(2.0));

然后得到你的结果:

PyObject* myResult = PyObject_CallObject(myFunction, args)

回到双:

double result = PyFloat_AsDouble(myResult);

您显然应该检查错误(请参阅Mark Tolonen给出的链接)。

如有任何疑问,请不要犹豫。祝好运。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号