[EMAIL PROTECTED] (Bengt Richter) writes: > On Thu, 03 Nov 2005 13:37:08 -0500, Mike Meyer <[EMAIL PROTECTED]> wrote: > [...] >>> I think it even less sane, if the same occurce of b.a refers to two >>> different objects, like in b.a += 2 >> >>That's a wart in +=, nothing less. The fix to that is to remove += >>from the language, but it's a bit late for that. >> > Hm, "the" fix? Why wouldn't e.g. treating augassign as shorthand for a source > transformation > (i.e., asstgt <op>= expr becomes by simple text substitution asstgt = asstgt > <op> expr) > be as good a fix? Then we could discuss what > > b.a = b.a + 2 > > should mean ;-)
The problem with += is how it behaves, not how you treat it. But you can't treat it as a simple text substitution, because that would imply that asstgt gets evaluated twice, which doesn't happen. > OTOH, we could discuss how you can confuse yourself with the results of b.a > += 2 > after defining a class variable "a" as an instance of a class defining > __iadd__ ;-) You may confuse yourself that way, I don't have any problems with it per se. > Or point out that you can define descriptors (or use property to make it easy) > to control what happens, pretty much in as much detail as you can describe > requirements ;-) I've already pointed that out. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list