On Wed, 14 Feb 2007, Dave Kuhlman wrote: > On Tue, Feb 13, 2007 at 11:35:47PM -0500, Kent Johnson wrote: > > Bob Gailer wrote: > > > I really like the simplicity of a.b = 3. I groan when put in other > > > environments where a method call is required. > > > > > > And Python has the magic method __setattr__ to intercept attribute > > > assignment for the times where some inspection / protection / > > > side-effect action is desired. > > > > The modern way to do this (since Python 2.2 I think) is to use > > properties. __setattr__ has other uses (for example for delegation) but > > it is too big a hammer for changing the behaviour of a single attribute. > > Some of us old school types feel that properties are non-Pythonic. > They are a way to write code that does something that it does not > look like that code is doing. It hides your intend. So, it is not > explicit.
Using __setattr__ is at least as sneaky, though. If the sneakiness bothers you, use a setter/getter method and lose that simplicity Bob refers to. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor