python - 如何将 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实例的克隆对象。
解决方案
推荐阅读
- html - 如何让两种不同的东西并存?
- c++ - boost 日志文件无法创建 sample.log 文件
- javascript - new Date(...).getTime() 和 Date.UTC(...) 之间的区别
- swift - swift不能改变uiview的宽度
- matlab - MATLAB中递归差分方程的非实根
- html - 在 SVG 中创建没有文本标签的特定符号
- javascript - 无法正确包装元素锚标记
- icons - Netbeans 11.1 用 JDK13 看起来模糊和放大
- mongodb - Docker:如何知道 mongo 是否在 Alpine/node 中使用 shell 脚本文件运行
- python - Bash 脚本找不到 Python MySQL.Connector 模块