Python 调用 C++,python调用,#include <bo
Python 调用 C++,python调用,#include #include <boost/python.hpp> #include <boost/python/module.hpp> #include <boost/python/def.hpp> #include <boost/python/to_python_converter.hpp> #include using namespace std; using namespace boost::python;namespace HelloPython{ // 简单函数 char const* sayHello(){ return "Hello from boost::python"; }// 简单类 class HelloClass{ public: HelloClass(const string& name):name(name){ } public: string sayHello(){ return "Hello from HelloClass by : " + name; } private: string name; }; // 接受该类的简单函数 string sayHelloClass(HelloClass& hello){ return hello.sayHello() + " in function sayHelloClass"; }//STL容器 typedef vector<int> ivector;//有默认参数值的函数 void showPerson(string name,int age=30,string nationality="China"){ cout << name << " " << age << " " << nationality << endl; }// 封装带有默认参数值的函数 BOOST_PYTHON_FUNCTION_OVERLOADS(showPerson_overloads,showPerson,1,3) //1:最少参数个数,3最大参数个数// 封装模块 BOOST_PYTHON_MODULE(HelloPython){ // 封装简单函数 def("sayHello",sayHello); // 封装简单类,并定义__init__函数 class_("HelloClass",init()) .def("sayHello",&HelloClass::sayHello)//Add a regular member function ; def("sayHelloClass",sayHelloClass); // sayHelloClass can be made a member of module!!! // STL的简单封装方法 class_("ivector") .def(vector_indexing_suite()); class_ >("ivector_vector") .def(vector_indexing_suite >()); // 带有默认参数值的封装方法 def("showPerson",showPerson,showPerson_overloads()); }
#include <boost/python.hpp> #include <boost/python/module.hpp> #include <boost/python/def.hpp> #include <boost/python/to_python_converter.hpp> #include using namespace std; using namespace boost::python;namespace HelloPython{ // 简单函数 char const* sayHello(){ return "Hello from boost::python"; }// 简单类 class HelloClass{ public: HelloClass(const string& name):name(name){ } public: string sayHello(){ return "Hello from HelloClass by : " + name; } private: string name; }; // 接受该类的简单函数 string sayHelloClass(HelloClass& hello){ return hello.sayHello() + " in function sayHelloClass"; }//STL容器 typedef vector<int> ivector;//有默认参数值的函数 void showPerson(string name,int age=30,string nationality="China"){ cout << name << " " << age << " " << nationality << endl; }// 封装带有默认参数值的函数 BOOST_PYTHON_FUNCTION_OVERLOADS(showPerson_overloads,showPerson,1,3) //1:最少参数个数,3最大参数个数// 封装模块 BOOST_PYTHON_MODULE(HelloPython){ // 封装简单函数 def("sayHello",sayHello); // 封装简单类,并定义__init__函数 class_("HelloClass",init()) .def("sayHello",&HelloClass::sayHello)//Add a regular member function ; def("sayHelloClass",sayHelloClass); // sayHelloClass can be made a member of module!!! // STL的简单封装方法 class_("ivector") .def(vector_indexing_suite()); class_ >("ivector_vector") .def(vector_indexing_suite >()); // 带有默认参数值的封装方法 def("showPerson",showPerson,showPerson_overloads()); }
相关内容
- 快速多线程ping,多线程ping,#!/usr/bin/p
- python转换字符集,python字符集,def URLtoUTF
- 控制台刷新进度,控制台进度,import sysim
- python分割文件,python分割,#!/usr/bin/e
- Python生成目录树,python生成目录,# encoding:
- 过滤掉文件中的指定邮箱地址,过滤邮箱地址,#coding=
- Python 读取系统环境变量,python环境变量,import osfil
- python读取目录下文件并生成日志,,import os f
- python中map的用法,pythonmap用法,#范例1:>>> pri
- python操作sqlite,pythonsqlite,#!/usr/bin/p
评论关闭