BOOST类型转换–类转换控制
类参数权限控制
1.提供C++代码如下
class User
{
public:
User(std::string n) { name = n, value = "n"; };
std::string name;
std::string value;
};
2.提供转换代码如下
BOOST_PYTHON_MODULE(Boost_Python_Sample)
{
// 导出设置可读性
boost::python::class_<User>("User",boost::python::init<std::string>())
.def_readonly("name",&User::name)
.def_readwrite("value",&User::value);
}
3.提供python测试代码如下 ,此处测试对只读参数修改的时候编译器会报错
import Boost_Python_Sample
user = Boost_Python_Sample.User("lll")
user.value = "10"
print(user.name)
print(user.value)
类函数转换为统一属性
1.提供C++代码如下
class Pro
{
public:
void set(std::string msg)
{
m_msg = msg;
}
std::string get()
{
return m_msg;
}
private:
std::string m_msg;
};
2.提供转换代码如下
BOOST_PYTHON_MODULE(Boost_Python_Sample)
{
boost::python::class_<Pro>("Pro")
.add_property("info",&Pro::get,&Pro::set);
}
3.提供python测试代码如下
import Boost_Python_Sample
p = Boost_Python_Sample.Pro()
p.info = "aaa"
print(p.info)