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