![]() |
1
7
在python中,有 恒定类型 . 不可变类型的值不能更改。内置不可变类型的例子有int、float和str。
说了这句话,你就不能随心所欲了
第二个示例显示了一个解决方案,另一个解决方案是创建薄包装并公开:
这是一个更好的解决方案,而不是改变原来的C++类。 |
![]() |
2
2
我想你想要 return internal reference 相反。我以前也用过类似的方法。 编辑: Latest doc |
![]() |
3
0
我对boost.python不太了解,所以我可能会误解这个问题,在这种情况下,这是完全没有帮助的。但这里可以说: 在python中,不能在按引用返回和按值返回之间进行选择,这在python中是没有意义的。我发现最容易把它看作是所有被引用处理的事情。 你只有对象,你有这些对象的名称。所以
创建字符串对象“ryiuy”,然后让您引用名为“foo”的字符串对象。所以在python中,当您通过某个对象时,您会通过该对象。没有“值”,因此无法传递值。但同样,它也是一个有效的观点,即也没有引用,只有对象及其名称。 因此,我猜答案是,当您在C中得到一个引用时,您需要将一个引用传递给引用到Python中的对象。当您在C中得到一个值时,您需要将一个对您从该值创建的对象的引用传递给python。 |
![]() |
4
0
您确信C++对象正在被复制吗?每次你都会得到一个新的Python对象,但它引用同一个C++对象。如何确定对象已被复制? |
![]() |
G.Hovhannisyan · 如何使python在通过boost::python对std::vector进行迭代期间不从boost::shared\u ptr创建/复制pyobject? 7 年前 |
![]() |
Mike · 如何在boost::python中“从未来导入分区”呢? 7 年前 |
![]() |
Caduchon · 使用多个Python版本构建Boost 10 年前 |