On 5/3/2010 12:37 AM, Alf P. Steinbach wrote:
* Terry Reedy:
* Alf P. Steinbach:
* Aahz:

and sometimes
they rebind the original target to the same object.

At the Python level that seems to be an undetectable null-operation.

If you try t=(1,2,3); t[1]+=3, if very much matters that a rebind occurs.

Testing:

<test lang="py3">
 >>> t = ([], [], [])
 >>> t
([], [], [])
 >>> t[0] += ["blah"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
 >>> t
(['blah'], [], [])
 >>> _
</test>

Yep, it matters.

So one should instead write t[0].extend('blah') to the same effect, but without the exception raising assignment attempt, when that is what one really means ;-).

Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to