[C++-sig] Re: registering simple conversions from/to python
brett.calcott at paradise.net.nz
Wed May 28 11:52:37 CEST 2003
"David Abrahams" <dave at boost-consulting.com> wrote
> > I'd like to pythonise my classes a little by allowing tuples to be
> > passed to and from the data values.
> > In python in would look something like this:
> > class C(object):
> > def __init__(self, x=0.0, y=0.0):
> > self.x = x
> > self.y = y
> > def get_xy(self):
> > return self.x, self.y
> > def set_xy(self, xy):
> > self.x, self.y = xy
> > xy = property(get_xy, set_xy)
> > I guess I would start by created a pair<x, x> object, and then
> > register inward and outward conversions for it.
> > Is there a simple recipe for registering these conversions?
> I'm sorry, I can't tell what you're trying to do. Could you please
> show an example of your C++ class and how you'd like to use it from
Sorry, it was a little terse :)
The point is that in the python class above I can do this:
c = C()
c.x = 10.0
c.y = 5.0
But, with the property added, I can do this too:
c.xy = 10.0, 5.0
Which is kinda cool. I want to be able to do the same kind of thing from
C++. It is easy in boost_python to add a couple of data variables x and
y, but how to add the property wasn't obvious as I need to to be able to
unwrap and rewrap tuples/lists.
I think Ralf has supplied enough information to get me started.
More information about the Cplusplus-sig