On 09/29/2010 09:01 AM, Hans Meine wrote:
Am Mittwoch 29 September 2010, 17:02:57 schrieb Willi Karel:
I'd like to derive from either Python's built-in 'str' or
boost::python::str, resulting in a class that provides additional
methods / member functions / attributes. [...]
AFAIK this is just an unsupported feature of the BPL. I was (and would still
be) interested in the same thing, only with list/dict being the base classes,
but this does not seem to be possible.
From the outside, I would guess/hope that it's not too hard to fix, but having
looked at various parts of boost::python in the past, I don't think that I
will try it myself in the near future.
Including e.g. boost::python::str in the list of base classes yields a
run-time error in python: [...]
If it was supported, I would say that this would be the right approach/API.
If you *really* need to subclass Python's str type (so your objects pass
an "isinstance(obj, str)" check, it is possible to do that in a way that
is interoperable with Boost.Python (you'd be able to hold such an object
in boost::python::str, for instance), but you'd have to use a lot of the
raw Python C API to do it. It would certainly be harder than just
adding str-like methods to a regular Boost.Python class.
Jim Bosch
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig