[Python-Dev] PEP 443 - Single-dispatch generic functions
Nick Coghlan
ncoghlan at gmail.com
Thu May 23 09:34:59 CEST 2013
More information about the Python-Dev mailing list
Thu May 23 09:34:59 CEST 2013
- Previous message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Next message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 23 May 2013 16:37, "Devin Jeanpierre" <jeanpierreda at gmail.com> wrote: > > On Thu, May 23, 2013 at 2:04 AM, Antoine Pitrou <solipsis at pitrou.net> wrote: > > On Thu, 23 May 2013 12:12:26 +1000 > > Nick Coghlan <ncoghlan at gmail.com> 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. That's the basic idea, but there's the extra complication that if type(right) is a strict subclass of type(left), you try radd first. Cheers, Nick. > > -- Devin > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130523/6bedcf68/attachment-0001.html>
- Previous message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Next message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list