如何在Python中创建C++对象并将其指针返回给C++?
嘿,刚搞定用SWIG把C++的MyObject类封装到Python的需求,给大家唠唠具体实现和背后的逻辑~
1. C++端的类定义
首先是要封装的目标C++类,结构很简单,只有一个公共的double类型成员变量:
class MyObject { public: double i; };
2. Python端的使用方式
封装完成后,在Python里就能直接导入生成的模块来创建对象了,步骤超简单:
import MyModule m = MyModule.MyObject()
3. 背后的关键原理
这里得划个重点:Python里拿到的MyObject实例并不是纯Python对象——它实际上是由C编译生成的.pyd(Windows平台)或.so(Linux/macOS平台)模块在后台创建的。当你调用MyModule.MyObject()时,底层会自动执行new MyObject()的C调用,然后把生成的对象指针返回给Python层,让你能像操作普通Python对象一样使用它。
哦对了,你提到还有个Python函数返回相关内容,要是能补充下那个函数的代码或者具体需求,我还能接着帮你分析~
内容的提问来源于stack exchange,提问作者Totte Karlsson
相关产品推荐
相关产品推荐

