我必须将 C++ 枚举类公开到 python 中。我已经检查了一些例子,但都是关于 C 风格的enum类型。但是,我需要使用enum类。有什么建议吗?这是我的代码:zoo.hnamespace extzoo{namespace intzoo{class zoo{public:enum class Size{small, medium, large};const std::string hello_zoo();const std::string getname_zoo();const Size get_size();void set_size(Size);private:Size size;};}}zoo.cppusing namespace extzoo::intzoo;using namespace extzoo;const std::string zoo::hello_zoo() {return std::string("hello, zoo");}const std::string zoo::getname_zoo() {std::string input;std::cout<<"Please enter your favorit zoo name: ";std::getline(std::cin,input);return std::string("Your favorit zoo name is: ").append(input);}const zoo::Size zoo::get_size(){return this->size;}void zoo::set_size(zoo::Size s){this->size = s;}我将 C++ 方法暴露给 python 的代码pyintf.cppclass DummyZoo{};BOOST_PYTHON_MODULE(pyintf) {extzoo::intzoo::python::enum_<zoo::Size>("Size").value("small", zoo::small).value("medium", zoo::medium).value("large", zoo::large);scope intzoo= class_<DummyZoo>("intzoo");class_<intzoo::zoo>("zoo").def("hello_zoo", &extzoo::intzoo::zoo::hello_zoo).def("getname_zoo", &extzoo::intzoo::zoo::getname_zoo).def("get_size",&extzoo::intzoo::zoo::get_size).def("set_size",&extzoo::intzoo::zoo::set_size);}
添加回答
举报
0/150
提交
取消