用python a C++;使用pybind11初始化

用python a C++;使用pybind11初始化,python,c++,pybind11,Python,C++,Pybind11,假设一个人有这样一门课 class Data { public: Data(double d): value_(d) {}; private: double value_; }; 是否可以使用pybind11在Python中导出它,以便 d = Data(3.14) print(d) 显示3.14而不是类似的内容 0x7fed8a8c3298处的数据对象 导出时可以执行以下操作: class_<Data>("Data", module)

假设一个人有这样一门课

class Data
{
   public:
      Data(double d): value_(d) {};

   private:
      double value_;
 };
是否可以使用pybind11在Python中导出它,以便

d = Data(3.14)
print(d)
显示3.14而不是类似的内容

0x7fed8a8c3298处的数据对象


导出时可以执行以下操作:

class_<Data>("Data", module)
    .def("__repr__", [](const Data& d){ return std::to_string(d.getValue()); });
类(“数据”,模块) .def(“uuu repr_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu; 注意,我添加了
getValue
方法,因为
value\uu
是私有的。尽管这取决于您的接口,但添加类似于
Data::toString()
的内容可能更有意义