On 01/24/2015 11:55 AM, Chris Angelico wrote: > On Sun, Jan 25, 2015 at 5:56 AM, Ethan Furman <et...@stoneleaf.us> wrote: >> If the non-generic is what you're concerned about: >> >> # not tested >> dispatch_table_a = {} >> dispatch_table_b = {} >> dispatch_table_c = {} >> >> class dispatch: >> def __init__(self, dispatch_table): >> self.dispatch = dispatch_table >> def __call__(self, func): >> self.dispatch[func.__name__] = func >> return func >> >> @dispatch(dispatch_table_a) >> def foo(...): >> pass > > That's still only able to assign to a key of a dictionary, using the > function name.
This is a Good Thing. The def statement populates a few items, __name__ being one of them. One of the reasons lambda is not encouraged is because its name is always '<lambda>', which just ain't helpful when the smelly becomes air borne! ;) -- ~Ethan~
signature.asc
Description: OpenPGP digital signature
-- https://mail.python.org/mailman/listinfo/python-list