<html>
<body>

        
                 
         I will use walkaround but I think you'd better fix the numpy bug:<br />
                <br /> from numpy import ndarray, float64, asanyarray, array<br /> class asdf(ndarray):<br />     __array_priority__ = 10<br />     def __new__(self, vals1, vals2):<br />         obj = asanyarray(vals1).view(self)<br />         obj.vals2 = vals2<br />         return obj<br />     def __add__(self, other):<br />         print('add')<br />         assert not isinstance(other , asdf), 'unimplemented'<br />         return asdf(self.view(ndarray) + other, self.vals2)<br />     def __radd__(self, other):<br />         print('radd')<br />         assert not isinstance(other , asdf), 'unimplemented'<br />         return asdf(self.view(ndarray) + other, self.vals2)<br />         <br /> a = asdf(array((1, 2, 3)), array((10, 20, 30)))<br /> z = float64(1.0)<br />
                <br /> print(a.__array_priority__) # 10<br /> print(z.__array_priority__) # -1000000.0<br />
                <br /> r2 = a + z<br /> print(r2.vals2) # ok, prints 'add' and (10,20,30)<br />
                <br /> r1 = z+a<br /> print(r1.vals2)<br />  # doesn't print "radd" (i.e. doesn't enters asdf.__radd__ function at all)<br /> # raises AttributeError<br /> #"'asdf' object has no attribute 'vals2'"<br />
                <br /> tried in Python2 + numpy 1.6.1 and Python3 + numpy 1.7.0 dev<br />    

</body>
</html>