Hi,

I've been reading the discussions on interfaces and generic functions with much 
interest. Some people have expressed concerns that readability and code 
discovery (where is the code that this call is going to run) may suffer. Could 
someone please address some simple questions for me about this as I'm not 
familiar with using generics in large projects?

For a reusable library of code that includes generics, does the library writer 
typically try to limit exception types that can pass out of the generic 
function? In other words, I guess what I'm asking is if there is way a for a 
library writer to register an "around" rule that would always be outermost so 
that one could wrap everything including later overrides in a try: except: or a 
transaction or something like that. If this is a *common* pattern would it be 
better handled by registering one or more context managers for the generic 
function? I haven't fully thought this out yet, but it seems like if context 
managers were useful for a suite of code using the "with" statement, that they 
could be just as applicable for managing the context of the suites of code 
reachable through the generic function dispatch. I leave syntax proposals for 
later if this is a useful idea, but some obvious ones come to mind.

I understand addmethod and hasmethod as have been proposed, but is there a need 
(for unit tests or other situations) to have a function that would return the 
concrete function object or list of function objects (if there is a chain) for 
a particular set of arguments without actually calling them (a getmethod or 
querymethod operation)?

If I had a generic function f, could I interactively do:

dir(f)

to begin discovering concrete functions associated with the generic, or there 
be a separate inspection mechanism?

What does help(f) do? I think Phillip said something about this, but I don't 
understand it from the usability aspect (i.e. Does help merge all docstrings 
from known implementations, provide the docstring of the default?)

Ross


_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to