On Wed, Jun 5, 2019 at 11:31 AM Chris Angelico <ros...@gmail.com> wrote:
> Part of the reason you can't just treat the + operator as a method
> call is that there are reflected methods. Consider:
>
> class Int(int):
>     def __radd__(self, other):
>         print("You're adding %s to me!" % other)
>         return 1234
>
> x = Int(7)
> print(x + 1)
> print(1 + x)
>
> If these were implemented as x.__add__(1) and (1).__add__(x), the
> second one would use the default implementation of addition. The left
> operand would be the only one able to decide how something should be
> implemented.

Yep, just did an experiment in Scala, where you can do x + 1, but not
1 + x. So it looses some flexibility in terms of how you write your
expression, but still, it looks OK to only write x + 1 and when you
write 1 + x you get an error immediately.
Python-Ideas mailing list -- python-dev(a)python.org
To unsubscribe send an email to python-ideas-leave(a)python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/

Reply via email to