`
chensx
  • 浏览: 48783 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C++调用返回多个值的Python函数

阅读更多
      某些时候,用python模块来实现一些特定的功能会比用其他类型的模块更加简洁方便。
在C++程序中,调用python模块时需要加载一些必要的libs,这些libs在网上都可以找到。下面的代码演示了C++程序如何调用python中的函数,并得到从python函数中返回的多个值。

# filename : cal.py
# return type : tuple
def mix(a, b) :
    r1 = a + b
    r2 = a - b
    return (r1, r2) # (7,3)

#include "stdafx.h"
#include ".\\include\\Python.h"

int _tmain(int argc, _TCHAR* argv[])
{
	string filename = "cal"; // cal.py
	string methodname_mix = "mix"; // function name

	Py_Initialize();  

	// load the module
	PyObject * pyFileName = PyString_FromString(filename.c_str());
	PyObject * pyMod = PyImport_Import(pyFileName); 

	// load the function
	PyObject * pyFunc_mix = PyObject_GetAttrString(pyMod, methodname_mix.c_str());

	// test the function is callable
    if (pyFunc_mix && PyCallable_Check(pyFunc_mix))
	{
		PyObject * pyParams = PyTuple_New(2);
		PyTuple_SetItem(pyParams, 0, Py_BuildValue("i", 5));
		PyTuple_SetItem(pyParams, 1, Py_BuildValue("i", 2));

		// ok, call the function
        int r1 = 0, r2 = 0;
		PyObject * pyValue = PyObject_CallObject(pyFunc_mix, pyParams);			
		PyArg_ParseTuple(pyValue, "i|i", &r1, &r2);
		if (pyValue)
		{
			printf("%d,%d\n", r1, r2); //output is 7,3
		}		
	}

	Py_Finalize();  

	return 0;
}
2
0
分享到:
评论

相关推荐

    c++调用Python函数(并返回数据).zip

    使用c++调用Python中的函数并返回数据,部分代码参考自网络。

    C++调用python函数

    C++调用python发邮件的函数,一个简单实例,注释很详细,其中要注意字符编码是utf-8,程序中不能有中文字符

    C++调用Python并传参

    C#调用C++,C++调用Python并传参,包括C++向python传递图片数据,C++向python传递组数据,C++向python传递字符串数据,C++向python传递结构体数据,C++初始化python类数据并调用方法,实际案例,能直接运行,需要安装...

    C++调用Python脚本

    完整的C++调用Python脚本源码,包含参数传递和函数返回值处理等,且解决传递中文参数出现乱码等问题

    python调用C++函数

    ###python调用C++与C函数的资料大全###

    C++之python函数调用

    C++之python函数调用 习惯C++的内存分配释放,突然间不用释放,感觉很蹊跷,上网查发现也没有释放函数。如果真这样的话,是很可怕的,因为无法自己管理内存,但是我相信编译器作者的垃圾回收机制,所以OK,不管!...

    Python中调用C++dll例子

    Python中调用C++dll例子,使用python中的ctypes。

    C++调用python3.5中的函数

    下载后需要,按照博客中的过程就可以运行。需要安装anaconda3

    Python调用C函数实例

    Python C/C++混编 Python 调用C函数 传递参数为:值传递,指针传递,数组

    C++调用Python3函数与类的实例代码

    Vs2015 - C++调用Python3函数与类的实例代码,具体可查看https://blog.csdn.net/automoblie0/article/details/102461477

    xmlrpc远程函数式服务调用,C++作为服务端,python、C++客户端通过http进行调用

    xmlrpc远程函数式服务调用,C++作为服务端,python、C++客户端通过http进行调用,远程调用函数式服务,具体运行结果可以参考https://blog.csdn.net/zckui/article/details/121147756 博客

    python调用c++动态库Demo

    使用python调用c++动态库的演示工程, 包含回调函数, 供初学者学习

    从C++导出类到Python

    这个例子示范了如何从C++中导出一个类到Python。轻松的扩展Python模块!

    C++调用Python Miniconda虚拟环境

    实现C++调用Python中的带参数函数,Python环境为miniconda虚拟环境,可以随着应用程序一起打包发布,使得集成了Python的Qt应用程序更方便部署。

    c++中嵌入python虚拟机以及扩展例子

    自己写的helloworld程序,从最简单c++中调用python函数,捕捉python出错到c++类封装python类的方法都有。

    解决c++调用python中文乱码问题

    windows中文操作系统下,vs的c++项目...准备一个gbk转utf8的函数,如下(网上的): string GbkToUtf8(const char* src_str) { int len = MultiByteToWideChar(CP_ACP, 0, src_str, -1, NULL, 0); wchar_t* wst

    C++调用python应用实例

    该实例综合实现了c++调用python函数的执行过程,实例中实现了带整型、字符串型参数以及有返回值函数的调用方法。

    python C++包装类

    C++ 封装的python类,简化了python接口调用,可快速上手并使用,接口可调用python脚本以及文件,也可直接调用python的函数接口,并获得返回值

    如何在python中引用c/c++函数

    如何在python中引用c/c++函数Python调用c/c++python调用c Python调用c/c++ 由于python性能问题的原因,在实际项目中往往会在python中去调用c的一些方法,本文将介绍在centos8下面python去调用c的方法。 python调用c ...

    Python调用C++程序的方法详解

    大家都知道Python的优点是开发效率高,使用方便,C++则是运行效率高,这两者可以相辅相成,不管是在Python项目中嵌入C++代码,或是在C++项目中用Python实现外围功能,都可能遇到Python调用C++模块的需求,下面列举出...

Global site tag (gtag.js) - Google Analytics