...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
raw_function(...)
is used to convert a function taking a tuple and a dict into a Python callable object
which accepts a variable number of arguments and arbitrary keyword
arguments.
template <class F> object raw_function(F f, std::size_t min_args = 0);
f(tuple(), dict())
is
well-formed.min_args
arguments. When called, the actual non-keyword arguments will be passed in a tuple as the first argument to f
, and the keyword arguments will be passed in a dict as the second argument to f
.
#include <boost/python/def.hpp> #include <boost/python/tuple.hpp> #include <boost/python/dict.hpp> #include <boost/python/module.hpp> #include <boost/python/raw_function.hpp> using namespace boost::python; tuple raw(tuple args, dict kw) { return make_tuple(args, kw); } BOOST_PYTHON_MODULE(raw_test) { def("raw", raw_function(raw)); }Python:
>>> from raw_test import * >>> raw(3, 4, foo = 'bar', baz = 42) ((3, 4), {'foo': 'bar', 'baz': 42})
7 March, 2003
© Copyright Dave Abrahams 2002.