On Thu, May 23, 2013 at 2:04 AM, Antoine Pitrou <[email protected]> wrote:
> On Thu, 23 May 2013 12:12:26 +1000
> Nick Coghlan <[email protected]> wrote:
>> The binary operators can be more accurately said to use a complicated
>> single-dispatch dance rather than supporting native dual-dispatch.
>
> Not one based on the type of a single argument, though.

Why not?

I'd expect it to look something like this:

    @singledispatch
    def ladd(left, right):
        return NotImplemented

    @singledispatch
    def radd(right, left):
        return NotImplemented

    def add(left, right):
        x = ladd(left, right)
        if x is not NotImplemented:
            return x
        x = radd(right, left)
        if x is not NotImplemented:
            return x
        raise TypeError

Then instead of defining __add__ you define an overloaded
implementation of ladd, and instead of defining __radd__ you define an
overloaded implementation of radd.

-- Devin
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to