[C++-sig] Re: wrapping complex attributes

David Abrahams dave at boost-consulting.com
Wed Nov 13 23:33:02 CET 2002

"Mike Rovner" <mike at bindkey.com> writes:

> David,
> Thanks for your invaluable help. You fast answers greatly smooth BPL leaning
> curve.
> As you suggested many times before I first experimented with pure Python
> code first.
> So I have two working variants of what I want:
> 1) with implicit self
> class cTcn:
>   # suppose it's some c++ member functions
>   def getX(self,n): print 'getX(%s)'%n
>   def delX(self,n): print 'delX(%s)'%n
>   def newX(self,n): print 'newX(%s)'%n
>   def getXall(self):print '[getXall()]'
>   def getY(self,n): print 'getY(%s)'%n
>   def delY(self,n): print 'delY(%s)'%n
>   def newY(self,n): print 'newY(%s)'%n
>   def getYall(self):print '[getYall()]'
>   def getZ(self,n): print 'getZ(%s)'%n
>   def delZ(self,n): print 'delZ(%s)'%n
>   def newZ(self,n): print 'newZ(%s)'%n
>   def getZall(self):print '[getZall()]'
>   # now I want 3 more members
>   def __init__(self):
>     self.x=tcn_helper(self.getX, self.delX, self.newX, self.getXall)
>     self.y=tcn_helper(self.getY, self.delY, self.newY, self.getYall)
>     self.z=tcn_helper(self.getZ, self.delZ, self.newZ, self.getZall)

In order for the Pure Python code to help you with the C++ version,
you need to use the same idioms. You'll need x,y, and z to be
properties on the class instead of attributes on the instance. Make
them into properties and try again. See


If you need a description of properties

                       David Abrahams
   dave at boost-consulting.com * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

More information about the Cplusplus-sig mailing list