Python 3000 idea: reversing the order of chained assignments
tjreedy at udel.edu
Thu Mar 22 06:51:31 CET 2007
"Mark T" <nospam at nospam.com> wrote in message
news:DvGdnQacTuMlmp_bnZ2dnUVZ_uWdnZ2d at comcast.com...
| This is interesting:
| >>> class Test(object):
| ... def __getattribute__(self,n):
| ... print 'reading',n
| ... return object.__getattribute__(self,n)
| ... def __setattr__(self,n,v):
| ... print 'writing',n,v
| ... return object.__setattr__(self,n,v)
| >>> x=Test()
| >>> x.a=1; x.b=2; x.c=3
| writing a 1
| writing b 2
| writing c 3
| >>> x.a=x.b=x.c
| reading c
| writing a 3
| writing b 3
| I wouldn't have expected "a" to be assigned first in a right-to-left
| order. The result is the same in any case.
The assignment order is specified in the language reference.
But many never read and those who do can forget.
And even if the coder reads and remembers, a code reader may not have.
Which is why I suggested multiple statements in explicit order when it
More information about the Python-list