On Jan 19, 8:17 pm, Luis Zarrabeitia <ky...@uh.cu> wrote: > Quoting "Russ P." <russ.paie...@gmail.com>: > > > > > > > On Jan 19, 6:24 pm, "James Mills" <prolo...@shortcircuit.net.au> > > wrote: > > > > Python programmers tend to not have a need for > > > properties. Quite honestly they are a waste of time. > > > They come from traditional OO approaches to software design > > > (and mostly from the Java world). > > > With statements like that, it's no wonder you don't understand the > > value of encapsulation. > > [snip] > > > If you didn't plan ahead and encapsulate the radius from the start, > > properties allow you to save yourself and encapsulate it later without > > breaking the client's code. > > Python programmers don't _need_ to plan ahead and encapsulate the radius from > the start. That's the whole point. No clairvoyance needed. I kind of like > that.
And I like it too. I was trying to explain that to Mr. Mills, who claimed that properties are "a waste of time." Properties reduce the need for encapsulation, but they do not eliminate it, particularly for large projects. In the circle example, properties are nice for guaranteeing consistency between the radius and the area, but they are not of much use if you decide later that the client should not be allowed to change either one. Well... I suppose you could define the setter to do nothing ... but you had better figure a way to notify the client about it. -- http://mail.python.org/mailman/listinfo/python-list