[Python-Dev] PEP 443 - Single-dispatch generic functions

Devin Jeanpierre jeanpierreda at gmail.com
Thu May 23 08:33:57 CEST 2013


On Thu, May 23, 2013 at 2:04 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> On 2013年5月23日 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.
-- Devin


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /