首页 > 解决方案 > 如何将 python 实例共享给 C++?

问题描述

我将 python 用于我的 c++ 程序的子脚本语言。我将我的 c++ 类绑定到 python 以在 python 端使用它。

该系统必须可以将 c++ 实例共享(传递)给 python。甚至 Python(脚本端)也可以创建新实例,它也必须由 c++ 端共享。

但是python(or..java, c#)的类类型是引用类型。

#MyClass class has class type member test 
data1 = MyClass()
data2 = MyClass()

#so data1's test will point data2.test object
data1.test = data2.test

所以它将像 c++ 的指针一样工作。

但是在 C++ 中,类不是引用类型。= operator. 因此,如果 =operator 不会重载,则赋值操作将调用,那么它将工作值复制。

ClassInstance1 = ClassInstance2

好吧,如果您在 python 中创建一些对象,并共享(传递)到 c++ 端。喜欢...

 Character* pChara = PythonSideObjectToCpp("data1");

c++和python的数据工作规则是不同的。所以我认为 c++ 不能与 pythonlike 上面的代码进行 1:1 匹配。它将需要更多关于获取、设置或控制 python 引用类型成员的接口。

你怎么看?我不认为python实例可以纯粹提取到c++。嗯......但它可以提取python实例的克隆对象。

标签: pythonc++

解决方案


推荐阅读