[Numpy-discussion] [help needed] associativity and precedence of '@'

Alexander Belopolsky ndarray at mac.com
Mon Mar 17 12:09:32 EDT 2014


On Mon, Mar 17, 2014 at 11:48 AM, Nathaniel Smith <njs at 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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20140317/2d8b0137/attachment.html>


More information about the NumPy-Discussion mailing list