使用boost在python调用c++的类
时间: 2023-12-11 21:05:40 浏览: 93
call-cpp-from-python-with-boost:使用Boost库从python调用C ++代码
使用Boost.Python可以很方便地将C++代码集成到Python中。下面是一个示例,展示了如何在Python中调用一个简单的C++类:
首先,定义一个C++类(例如,名为“my_class”)和一个成员函数(例如,名为“my_function”):
```cpp
#include <iostream>
#include <string>
class my_class {
public:
my_class(std::string name) : name_(name) {}
void my_function() {
std::cout << "Hello, " << name_ << "!" << std::endl;
}
private:
std::string name_;
};
```
然后,在C++中使用Boost.Python导出该类和成员函数:
```cpp
#include <boost/python.hpp>
using namespace boost::python;
BOOST_PYTHON_MODULE(my_module) {
class_<my_class>("my_class", init<std::string>())
.def("my_function", &my_class::my_function);
}
```
在Python中,导入该模块并创建一个my_class对象:
```python
import my_module
obj = my_module.my_class("world")
obj.my_function() # 输出 "Hello, world!"
```
这是一个简单的例子,您可以根据需要调整和扩展它。请注意,通过使用Boost.Python,您可以轻松地将C++类和函数导出到Python中,从而获得更高的性能和更好的代码复用性。
阅读全文