|
Size: 1013
Comment:
|
← Revision 4 as of 2008-11-15 14:00:37 ⇥
Size: 963
Comment: converted to 1.6 markup
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 14: | Line 14: |
| #include <boost/python/def.hpp> #include <boost/python/module_init.hpp> |
#include <boost/python.hpp> |
| Line 18: | Line 17: |
| BOOST_PYTHON_MODULE_INIT(getting_started1) | BOOST_PYTHON_MODULE(getting_started1) |
Suppose we have the following C++ API which we want to expose in Python:
#include <string>
namespace { // Avoid cluttering the global namespace.
// A couple of simple C++ functions that we want to expose to Python.
std::string greet() { return "hello, world"; }
int square(int number) { return number * number; }
}Here is the C++ code for a python module called getting_started1 which exposes the API.
#include <boost/python.hpp>
using namespace boost::python;
BOOST_PYTHON_MODULE(getting_started1)
{
// Add regular functions to the module.
def("greet", greet);
def("square", square);
}That's it! If we build this shared library and put it on our PYTHONPATH we can now access our C++ functions from Python.
>>> import getting_started1 >>> print getting_started1.greet() hello, world >>> number = 11 >>> print number, '*', number, '=', getting_started1.square(number) 11 * 11 = 121
