[Python-Dev] single dispatch for instance methods

2016-10-13 Thread Tim Mitchell
Hi All,

It would be nice if the @singledispatch decorator worked on instance
methods.
I have a reference implementation on pypi that does this (
https://pypi.python.org/pypi/methoddispatch).

I posted this message to python ideas a month ago (
https://mail.python.org/pipermail/python-ideas/2016-September/042466.html)
and got 100% support from 1 response.

Not sure if I should proceed with writing a PEP.
I am happy to do all the work if I know it will be accepted.

Cheers
Tim
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] single dispatch for instance methods

2016-10-16 Thread Tim Mitchell
An interesting idea, however from my point of view in methoddispatch there
is no dispatching on the self argument at all.
Overriding methods simply allows your subclass to have a different dispatch
table for a method than the super class.  This happens when the class is
created, not when the function is called.
When the method is called it is single-dispatched on the (single) argument
after self using the dispatch table for the class of the method.



On 17 October 2016 at 11:53, Aric Coady  wrote:

> On Oct 14, 2016, at 8:49 AM, [email protected] wrote:
>
> Date: Fri, 14 Oct 2016 14:11:18 +1300
> From: Tim Mitchell 
>
> It would be nice if the @singledispatch decorator worked on instance
> methods.
> I have a reference implementation on pypi that does this (
> https://pypi.python.org/pypi/methoddispatch).
>
>
> You might be interested in this thread from my multimethod library:
> https://bitbucket.org/coady/multimethod/issues/2/.  It was a feature
> request for multiple dispatch to work on instance methods.  I implemented a
> variation where the initial self argument still contributed to the dispatch.
>
> I think the same reasoning would apply in the single dispatch case:  that
> it’s not obvious the “dispatch” would occur once on the self argument to
> find the method, and then again on the “first” argument.  Especially since
> Py3 did away with bound methods, so you can call a method through its class
> and explicitly supply self as the first argument.
>
>
>
--
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com