[Python-Dev] INPLACE_ADD and INPLACE_MULTIPLY oddities in ceval.c
Travis Oliphant
oliphant.travis at ieee.org
Tue Mar 28 03:08:00 CEST 2006
More information about the Python-Dev mailing list
Tue Mar 28 03:08:00 CEST 2006
- Previous message: [Python-Dev] I'm not getting email from SF when assignedabug/patch
- Next message: [Python-Dev] INPLACE_ADD and INPLACE_MULTIPLY oddities in ceval.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
If you have Numeric or numpy installed try this: #import Numeric as N import numpy as N a = range(10) b = N.arange(10) a.__iadd__(b) print a Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Contrast the returned output with import numpy as N a = range(10) b = N.arange(10) a += b print a Result: [ 0 2 4 6 8 10 12 14 16 18] Having "a+=b" and "a.__iadd__(b)" do different things seems like an unfortunate bug. It seems to me that the problem is that the INPLACE_ADD and INPLACE_MULTIPLY cases in ceval.c use PyNumber_InPlace<YYY> instead of trying PySequence_InPlace<YYY> when the object doesn't support the in-place number protocol. I could submit a patch if there is agreement that this is a problem. -Travis
- Previous message: [Python-Dev] I'm not getting email from SF when assignedabug/patch
- Next message: [Python-Dev] INPLACE_ADD and INPLACE_MULTIPLY oddities in ceval.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list