On Mon, Mar 17, 2014 at 11:48 AM, Nathaniel Smith <n...@pobox.com> wrote:
> > One more question that I think should be answered by the PEP and may > > influence the associativity decision is what happens if in an A @ B @ C > > expression, each operand has its own type that defines __matmul__ and > > __rmatmul__? For example, A can be an ndarray, B a sympy expression and > C a > > pyoperator. > > The general rule in Python is that in a binary operation A # B, then > first we try A.__special__, and if that doesn't exist or it returns > NotImplemented, then we try B.__rspecial__. (The exception is that if > B.__class__ is a proper subclass of A.__class__, then we do it in the > reverse order.) This is the simple case. My question was: "what happens if in an A @ B @ C expression, each operand has its own type that defines __matmul__ and __rmatmul__?" Are we going to recommend that other projects adopt numpy's __array_priority__? In mixed-type expressions, do you expect A @ B @ C to have type of A, B, or C? Does __matmul__ first then __rmatmul__ rule makes sense if @ becomes right-associative or should the order be reversed?
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion