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 <aric.co...@gmail.com> wrote: > On Oct 14, 2016, at 8:49 AM, python-dev-requ...@python.org wrote: > > Date: Fri, 14 Oct 2016 14:11:18 +1300 > From: Tim Mitchell <tim.mitch...@leapfrog3d.com> > > 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 Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com