C++中调用python函数
2011-09-11 09:42
447 查看
以下是通过boost::python实现的,python版本2.7
int main()
{
Py_Initialize();
PyObject * pModule = NULL;//声明变量
PyObject * pFunc = NULL;// 声明变量
pModule =PyImport_ImportModule("helloworld");//这里是要调用的文件名
if (!pModule)
cout << "err";
handle<>* _module; // Module handle.
_module = new handle<>(pModule);
// 通过call_method
int i = call_method<int>(_module->get() , "Hello" , 4);
// 通过attr
main_module.attr("Hello")(2);
// main_module.attr("Hello")(2); 展开如下
object main_module(*_module);
object FunObj = main_module.attr("Hello"); // 获取hello函数对象
// 通过object父类的operator()操作符
FunObj(1);
// 通过call
i = call<int>(FunObj.ptr(), 3);
{ // 遍历一遍python内置类型list对象中的值
list List = call_method<list>(_module->get() , "getList");
int n = len(List);
for (int i = 0 ; i < n ; i++)
{
int val = extract<int> (List[i]); // 获取List[i]产生的object对象中的值,通过extract模板来转换
cout << val << " ";
}
}
return 0;
}
int main()
{
Py_Initialize();
PyObject * pModule = NULL;//声明变量
PyObject * pFunc = NULL;// 声明变量
pModule =PyImport_ImportModule("helloworld");//这里是要调用的文件名
if (!pModule)
cout << "err";
handle<>* _module; // Module handle.
_module = new handle<>(pModule);
// 通过call_method
int i = call_method<int>(_module->get() , "Hello" , 4);
// 通过attr
main_module.attr("Hello")(2);
// main_module.attr("Hello")(2); 展开如下
object main_module(*_module);
object FunObj = main_module.attr("Hello"); // 获取hello函数对象
// 通过object父类的operator()操作符
FunObj(1);
// 通过call
i = call<int>(FunObj.ptr(), 3);
{ // 遍历一遍python内置类型list对象中的值
list List = call_method<list>(_module->get() , "getList");
int n = len(List);
for (int i = 0 ; i < n ; i++)
{
int val = extract<int> (List[i]); // 获取List[i]产生的object对象中的值,通过extract模板来转换
cout << val << " ";
}
}
return 0;
}
相关文章推荐
- C++调用Python函数并传入传出参数
- c++调用python函数时,使用PyArray_SimpleNewFromData(nd, dims, typenum, data)函数时出现内存错误的问题
- VS2008环境下C++调用Python模块函数----一封邮件引发的关机
- C++调用 python 函数及返回值的处理【元组,字符串...】
- C++调用Python函数,获取Ping某网站的延迟时间与丢包率
- C++调用Python函数
- 初始化函数中的虚函数调用( C++ vs python )
- c++调用python函数接口
- C++程序调用Python的函数(简单应用)及Ubuntu16.04下codeblocks的环境配置
- C++中调用python函数
- python 中调用c++定义的函数
- C++与Python的混合编程-环境配置与调用无参函数
- C++调用python,直接调用模块内函数,调用类内函数
- python嵌入C++------ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
- c++调用python函数接口
- Python中调用C++函数
- c++调用python函数
- c++ 调用 python 函数中文返回值乱码
- python调用c++ 函数
- C++调用Python函数