[Tutor] calling setters of superclasses
Matt Gregory
matt.gregory at oregonstate.edu
Thu Dec 23 01:34:38 CET 2010
On 12/18/2010 2:06 AM, Peter Otten wrote:
> I don't think /how/ you are trying it is stupid though I'm not so sure about
> /what/ .
Thank you all for very helpful suggestions. It took me a while to chew
on this before I could respond. I learned a lot about descriptors and
their interactions with properties that I hadn't fully understood before.
Peter and Alan's advice to create a check method that is overridden in
subclasses makes sense in order to avoid the naming conflicts. And I
also like Hugo's idea of applying separate descriptor classes to handle
the constraints introduced. That seems to be a flexible way of doing
things.
As far as the /what/, my example given was obviously contrived. I'm
really trying to create classes for 2D envelopes that describe the
bounding extent of spatial data. I have both Envelope and
RasterEnvelope classes - the former being just a bounding box around any
spatial data, the latter additionally specifying a raster cell size and
being able to discern rows, columns, etc.
I had been using the setter to do bounds checking on the Envelope class
(e.g. make sure x_min isn't bigger than x_max, etc. and rolling back
changes if so). For the RasterEnvelope class, I first wanted to call
the Envelope bounds checking and then to adjust rows/columns if a bigger
extent was requested. But you've successfully scared me away from using
properties (in a hierarchical way at least) and I've been able to get
what I need by just defining __setattr__ in both classes. Whether I did
that correctly is a story for another thread ...
matt
More information about the Tutor
mailing list