Paul Rubin wrote: > Steve Holden <[EMAIL PROTECTED]> writes: > >>>class A: >>> a = 1 >>>b = A() >>>b.a += 2 >>>print b.a >>>print A.a >>>Which results in >>>3 >>>1 >>> >> >>I don't suppose you'd care to enlighten us on what you'd regard as the >>superior outcome? > > > class A: > a = [] > b = A() > b.append(3) > print b.a > print a.a > > Compare and contrast.
append() guarantees to modify a mutable object in place. Augmented assignment operations don't,but are "normally" equivalent to name = name operator value In the former case exactly such semantics are implemented. I still don;t see anyone suggesting a better outcome for the augmented assignment. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list