我有一个c++函数,类似于:
int add(int *i, int j) {
*i += 3;
return *i + j;
}我已经使用pybind11为它创建了python绑定
PYBIND11_MODULE(example, m) {
m.doc() = R"pbdoc(add)pbdoc";
m.def("add", &add, R"pbdoc(Add two numbers)pbdoc");
}我在python中称之为:
>>import example
>>a=1
>>example.add(a,2)
>>6 --> This is correct
>>a
>>1 --> This is not what expect它返回6,这是正确的,但是,当我打印"a“时,它仍然打印1而不是4。
发布于 2018-12-18 17:32:06
你不能。变量a是对常量整数的引用。
在这个实例中,您必须重新绑定到结果:a = example.add(a, 2)的引用。或者,您可以将整数包装成可以变异的类型。
https://stackoverflow.com/questions/53837922
复制相似问题