The C++ code used for the examples below can be found
here
, and it is assumed that that code is loaded at the start of any session. Download it, save it under the name
features.h
, and load it:
>>> import cppyy >>> cppyy.include('features.h') >>>
Arguments and return types of
PyObject*
can be used, and passed on to CPython API calls (or through
cpyext
in PyPy).
The documentation string of a method or function contains the C++ arguments and return types of all overloads of that name, as applicable. Example:
>>> from cppyy.gbl import Concrete >>> print Concrete.array_method.__doc__ void Concrete::array_method(int* ad, int size) void Concrete::array_method(double* ad, int size) >>>
Bound C++ class is first-class Python and can thus be inspected like any Python objects can. For example, we can ask for
help()
:
>>> help(Concrete) Help on class Concrete in module gbl: class Concrete(Abstract) | Method resolution order: | Concrete | Abstract | CPPInstance | __builtin__.object | | Methods defined here: | | __assign__(self, const Concrete&) | Concrete& Concrete::operator=(const Concrete&) | | __init__(self, *args) | Concrete::Concrete(int n = 42) | Concrete::Concrete(const Concrete&) | etc. ....