最近在用 pybind11 绑定 c++中的一个库到 Python 中,遇到了一个问题
待绑定的类方法如下
class Ciphertext
{
public:
inline auto &scale() noexcept
{
return scale_;
}
inline auto &scale() const noexcept
{
return scale_;
}
private:
double scale_ = 1.0;
}
其例子中,有这样的调用:
Ciphertext x1_encrypted
x1_encrypted.scale() = pow(2.0, 40)
我是这样绑定的,可以成功访问到 scale 的值:
py::class_<Ciphertext>(m, "Ciphertext")
.def("scale", (double &(Ciphertext::*)()) &Ciphertext::scale)
但是,显然不能这样在 python 中给它赋值,请问有什么方法?还是说,只能自己去增加 set 方法?
谢谢各位了!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.