In article <4b0a01a...@dnews.tpgi.com.au>, Lie Ryan <lie.1...@gmail.com> wrote:
> The semantic of the in-place operator is something like: > x += y > becomes > x = x.__iadd__(y) > > thus > foo.bar += baz > becomes > foo.bar = foo.bar.__iadd__(baz) > > So the call sequence is, > foo.__getattr__('bar') ==> x > x.__iadd__(baz) ==> y > foo.__setattr__('bar', y) I don't get where the __setattr__() call comes from in this situation. I thought the whole idea of __iadd__(self, other) is that it's supposed to mutate self. So, why is there another assignment happening after the __iadd__() call? -- http://mail.python.org/mailman/listinfo/python-list