Steven D'Aprano wrote: > On Wed, 14 Feb 2007 22:21:43 -0800, James Stroud wrote: > >>> The user's expected behaviour for [1] + (1,) might be to return a list, or >>> it might be to return a tuple. Since there is no obviously correct >>> behaviour, the right thing to do is to refuse to guess. >> I guess we differ on what is obvious. This seems obvious to me: >> >> [1] + (1,) => [1, 1] >> (1,) + [1] => (1, 1) >> >> simply becuase the operand on the left should take precendence because >> its "__add__" is called and its "__add__" returns a list. > > But that's data dependent. When you call > > [1] + MyTuple(1) > > your MyTuple.__radd__ will be called first, not the list's __add__.
OK. With this you are beginning to convince me. Yes, I would want my __radd__ called in this case (which is a form of mind-reading, but necessary and convenient)--so your point is how might python read one's mind given list and tuple. You got me there. But you must agree that I am not an easy turn. -- http://mail.python.org/mailman/listinfo/python-list