<p>本章描述c++类,如何被python识别和使用</p>
<p><strong>c++代码:src.cpp</strong>
</p>
<p></p>
<p>#include <iostream><br>
#include <string><br>
using namespace std;<br><br>
/**********************************************struct and class ***********************************/<br>
struct A<br>
{<br>
void greet()<br>
{<br>
cout << "just a test! from A" << endl;<br>
}<br><br>
};<br><br>
struct B<br>
{<br>
B(string msg): msg(msg) {}<br><br>
void set(string msg)<br>
{ <br>
this->msg = msg;<br>
}<br><br>
void greet()<br>
{<br>
cout << msg << endl;<br>
}<br><br>
string msg;<br>
};<br><br>
class C<br>
{<br>
public:<br>
void greet()<br>
{<br>
cout << "just a test! from C" << endl;<br>
}<br><br>
};</p>
<p></p>
<p><strong>pyhton转换代码</strong>
:src4py.cpp</p>
<p>#include <boost/python.hpp><br>
#include "src.cpp"<br>
using namespace boost::python;<br>
BOOST_PYTHON_MODULE(test)<br>
{<br>
class_<A>("A")<br>
.def("greet", &A::greet)<br>
;<br><br><strong>class_<B>("B",init<string>())</strong>
//注意构造函数的写法<br>
.def("greet", &B::greet)<br>
.def("set", &B::set)<br>
;<br><br>
class_<C>("C")<br>
.def("greet", &C::greet)<br>
;<br><br>
//Constructors overload<br>
class_<D>("D",init<string,int>())<br>
.def(init<string>())<br>
.def("printstr",&D::printstr)<br>
.def("printint",&D::printint)<br>
;<br><br>
//if we do not wish to expose any constructors in E at all<br>
class_<E>("E",no_init)<br>
.def("printstr",&E::printstr)<br>
;<br>
class_<F>("F")<br>
.def("initE",&F::initE)<br>
.def("printEstr",&F::printEstr)<br>
;<br>
}</p>
<p>编译成so过程省略,如果要看makefile文件,请参照第一篇文章</p>
<p><a href="http://blog.csdn.net/linkyou/archive/2011/04/14/6323940.aspx">http://blog.csdn.net/linkyou/archive/2011/04/14/6323940.aspx</a>
</p>
<p></p>
<p><strong>python中调用代码</strong>
test.py</p>
<p>import test<br><br>
obj = test.A() //对应c++的struct A<br>
obj.greet() //structA中的方法greet<br><br>
obj = test.B("just a test! from B") //对应c++的struct B,且含构造函数<br>
obj.greet()<br>
obj.set("test again! from B")<br>
obj.greet()<br><br>
obj = test.C()<br>
obj.greet()<br><br>
obj = test.D("just a test!",1)<br>
obj.printstr()<br>
obj.printint()<br><br>
#if we do not wish to expose any constructors in E at all<br>
obj = test.F()<br>
e = obj.initE("just a test!")<br>
e.printstr()<br>
obj.printEstr() <br><br></p>
<p></p>
<p></p>
分享到:
相关推荐
python的struct模块.docx
python库。 资源全名:struct-model-python-0.1.0.tar.gz
Python模块学习 ---- struct 数据格式转换 2009-08-05 01:00 "Python是一门非常简洁的语言,对于数据类型的表示,不像其他语言预定义了许 " "多类型(如:在C#中,光整型就定义了8种),它只定义了六种基本 类型:...
4.1 The Aggregate Type class and struct.... . . . 140 4.2 Member Selection Operator...... . 141 4.3 Member Functions........ . . . 143 4.4 Access: Private and Public...... . . 146 4.5 Classes............
将c结构直接转换成python.struct需要的东西
C++ 经典struct面试题
c++通过socket udp模式传输struct数据(各种类型数据:int double float char long long等)到c++与python。c++通过socket udp接收数据,python通过enum枚举进行接收并且通过赋值给class类,封装统一方法
资源分类:Python库 所属语言:Python 资源全名:jsonstruct-0.2a1.linux-x86_64.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
客户端与服务器交互,采用socket传输struct结构体。以及跟数据库的交互文件
c++笔记struct和typedef struct彻底明白了
c++数据结构,向量的实现,可以实时添加和压缩数据
赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...
struct sx { int g,f,m,n,th,ht,z,f1,hx; bool bz; sx() { g=0,f=0,m=0,n=0,th=0,ht=0,z=0,f1=0,hx=0; } }; struct player { char name[110]; int x,j,m; int a[110]; sx s; player() { memset(a,0,sizeof(a)); j=1...
赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...
JavaStruct.jar 带源码!需求的同学拿去吧!~
typedef struct node { elementType data; node* next; } LList, *PList; 链表类的定义及要求如下: class linkedList { public: linkedList();//构造函数 virtual ~linkedList();//析构函数,注意要...
这是原来在Google code上的Java结构体类库——JavaStruct的jar包和使用文档,现在已经不好找了,特此放出来供大家使用,哈哈。
Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...
嵌入式 C C++语言精华文章集锦 C C+语言 struct 深层探索 2 C++中 extern "C"含义深层探索 7 C 语言高效编程的几招 11 想成为嵌入式程序员应知道的 0x10 个基本问题 15 C 语言嵌入式系统编程修炼 22 C ...
资源分类:Python库 所属语言:Python 资源全名:rcsb.utils.struct-0.16-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059