[Python-Dev] PEP 443 - Single-dispatch generic functions (original) (raw)
Ronan Lamy ronan.lamy at gmail.com
Thu May 23 23:02:46 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 ]
2013/5/23 Łukasz Langa <lukasz at langa.pl>
On 23 maj 2013, at 20:13, Éric Araujo <merwok at netwok.org> wrote:
> Question: what happens if two functions (say in two different modules) > are registered for the same type? Last one wins. Just like with assigning names in a scope, defining methods in a class or overriding them in a subclass.
This is a serious annoyance, considering that there are several places where a large library can reasonably define the implementations (i.e. with the class, with the function, or in some utility module). Note that in contrast with the case of functions in a module or methods in a class, linting tools cannot be expected to detect a duplication between functions with different names defined in different modules.
Another thing missing from the PEP is the ability to access the implementation function when you know the generic function and the class. A major use case for this is to define the implementation for a subclass by reusing its parent's implementation, e.g. :
@some_generic.register(my_int) def _(arg): print("Hello from my_int!") return some_genericint
-- Ronan Lamy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130523/eb4d848d/attachment.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 ]