En Mon, 04 Jan 2010 05:22:44 -0300, Steven D'Aprano
<ste...@remove.this.cybersource.com.au> escribió:
On Mon, 04 Jan 2010 04:59:02 -0300, Gabriel Genellina wrote:
Is there any reason for this error? Apart from "nobody cared to write
the code"
Yes, because such implicit conversions would be a bad idea.
I'm slowly convincing myself that it was actually a bad idea...
In-place addition += does work:
py> a = [1,2,3]
py> a += (4,5)
py> a
[1, 2, 3, 4, 5]
I call that an impressive gotcha. I believe that is because in-place
addition of lists is implemented as functionally equivalent to the extend
method:
a += "abc" # same as a.extend("abc")
a
[1, 2, 3, 4, 5, 'a', 'b', 'c']
a += {None: -1}
a
[1, 2, 3, 4, 5, 'a', 'b', 'c', None]
So += and extend are completely permissive - they slurp whatever comes
from iterating their right operand. Totally unexpected in some cases, as
in your examples above...
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list