From: Russell E. O. <ro...@uw...> - 2013-05-13 20:30:17
|
I have a SWIG-wrapped C++ class, for sake of argument called Obj. I'd like to add a few python instance variables that are only visible to python code. (these will be point to objects I don't want to wrap in C++ and that the C++ code doesn't need to see). The only way I've thought to do it is to use properties: %copyctorObj; %include "obj.h" %extend Obj { %pythoncode { @property def foo(self): if not hasattr(self, "_foo"): self._foo = Foo() return self._foo @foo.setter def foo(self, value): self._foo = value It works, but it's a lot of boilerplate and every read access requires an extra check, so it's slower than adding the instance variable at construction time. Also, any suggestions on how to get the copy constructor to copy the python-only value(s)? obj1 = Obj() obj2 = Obj(obj1) -- Russell |