Steven D'Aprano <[EMAIL PROTECTED]> wrote: > On Sun, 11 Dec 2005 17:05:16 +0100, Matthias Kaeppler wrote: > > > Why would I want to use an attribute in Python, where I would use > > getters and setters in Java? > > Oh boy! I've just come out of a rather long thread about that very issue. > If you care enough to read a bunch of people arguing past each other, > check the thread "Another newbie question", especially the posts about the > so-called Law of Demeter. > > But for the short summary: suppose I write a class: > > class Parrot: > def __init__(self, x): > self._x = x > print "please use instance.getx() and setx()" > def getx(self): > return self._x > def setx(self, x): > self._x = x > > What if I want to export methods of x other than get and set? Perhaps x > is a numeric value: now I have to export a whole series of arithmetic > operators: addx, subx, mulx, etc. And there may be other attributes I need > to export as well...
Sorry, I don't see this. a.setx( b.getx() + c.getx() - d.getx() ) will work just as well as (in a better-designed class) would a.x = b.x + c.x - d.x It's just that the former style you force syntactic cruft and overhead which you may save in the latter. "Exporting a series of operators", which was an issue in the LOD thread, is not one here: once you have setter and getter, by whatever syntax, it's not germane. Alex -- http://mail.python.org/mailman/listinfo/python-list