The benefit of properties (was Re: PEP 8: on member variables vs. attributes)

Steve Holden sholden at holdenweb.com
Fri Jan 17 15:26:35 EST 2003


"Peter Hansen" <peter at engcorp.com> wrote ...
> Donn Cave wrote:
> >
> > In my world, everyone who deals with code is eventually liable to care
> > how it works.  Especially with regard to state changes or side effects.
> > Not so much because we're itching to exploit this knowledge for evil
> > violations of one kind or another, more because it's eventually the only
> > way to understand why it works the way it does.  (Note ``eventually'',
> > I'm speaking of a last resort but a common one.)  We can't afford to
> > make code opaque to anyone.
>
> One of the programmers, whom I respected very much on the project I
> mentioned, was quite of the opposite view to mine.  He kept insisting
> that one shouldn't *want* to know what a given property does.  He
> used the example of a library package, where "clearly" I shouldn't
> have to know about all the nitty-gritty details that go on under
> the hood.
>
> In the end, we found agreement based on one point: so long as one
> cannot *trust* that the library is *bomb-proof, bug-free, fully
> documented code*, there's a good chance one needs to know what is
> going on underneath, especially to work around problems or even
> just to figure out how to use the library.
>
> I was of the opinion that we were not using, or creating, such
> a library, and that therefore we had to insist on very limited
> use of properties.
>
> I guess I'm saying that the principle is sound, but practically I
> have yet to see a situation where it would work for me.
>

One reason why a property-based approach might work better in Python is its
superior exception handling, which (while it might produce some surprises,
just like database triggers can) at least allows property-handling errors to
be trapped outside.

regards
--
Steve Holden                                  http://www.holdenweb.com/
Python Web Programming                 http://pydish.holdenweb.com/pwp/
Bring your musical instrument to PyCon!    http://www.python.org/pycon/







More information about the Python-list mailing list