[Python-Dev] INPLACE_ADD and INPLACE_MULTIPLY oddities in ceval.c (original) (raw)

Travis E. Oliphant oliphant.travis at ieee.org
Tue Mar 28 09:28:12 CEST 2006


Greg Ewing wrote:

Travis E. Oliphant wrote:

I think this can be fixed easily by first checking the sequence slot for a sqconcat function before calling PyNumberInPlaceAdd. However, if this is fixed, it looks like it's going to break NumPy, in the sense that it will no longer be able to force an arithmetic interpretation for "+" when adding a sequence to an array.

Well, it won't break any "documented" behavior of NumPy which does not use the sq_concat (or sq_concat_inplace) slot at all.

I can't imaging anybody relying on an in-place operations to return a "different" object, but we could make the change and run all the NumPy/SciPy tests to see what happens.

But, you are right that

w = [1,2,3,4]

w += array([1,2,3,4])

would no longer make w equal to array([2,4,6,8]). But, this seems like a very good thing to me, as such behavior is actually quite hard to explain except as "its a bug"

-Travis



More information about the Python-Dev mailing list