BOOST类型转换–类转换控制

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)
上一篇:#0028. 「APIO2008」DNA


下一篇:Docker 容器互联