2013/5/24 Ethan Furman <ethan at stoneleaf.us> > On 05/23/2013 02:02 PM, Ronan Lamy wrote: > >> 2013/5/23 Łukasz Langa <lukasz at langa.pl <mailto:lukasz at langa.pl>> >> >> >> On 23 maj 2013, at 20:13, Éric Araujo <merwok at netwok.org <mailto: >> 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. >> > > What would you suggest happen in this case? > Raise a ValueError, maybe? In that case, there needs to be a way to force the overriding when it is explicitly desired. One way would be to allow unregistering implementations: overriding is then done by unregistering the old implementation before defining the new one. This is a bit cumbersome, which IMHO is a good thing for an operation that is just as disruptive as monkey-patching a class or a module. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130524/9c932ad9/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4