Hi group!

I'm running numpypy and I have a problem with augmented assignment statements. It looks to me like the relevant methods are simply absent from my numpypy array objects. Consider for example:

$ pypy
Python 2.7.3 (7e4f0faa3d51, Nov 16 2012, 16:56:51)
[PyPy 2.0.0-beta1 with GCC 4.4.3] on linux2
...
>>>> import numpypy as np
>>>> a=np.array([1])
>>>> b = a
>>>> b is a
True
>>>> b *= 3
>>>> b is a
False
>>>> b.__imul__
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'ndarray' object has no attribute '__imul__'

On numpy under CPython, 'b is a' evaluates to True, and np.ndarray.__imul__ is present. I suppose since the method isn't there, the system is falling back to run __mul__ and assigns the result to a new object (after all b contains correct data after the *=), but for my application I want the in-place operation. I've browsed in circles for a while to find out what's wrong or, respectively, why it is as it is; there might be a simple answer to my problem, so I decided to ask for help :)

With regards

Kay



_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to