And now for something completely different... Decorators are not required to return a function!
I use them to create a dictionary that maps function names to the corresponding function object.
This is very useful when associating actions with user-entered commands. Example:
def collect(func=None, d={}): if not func: return d d[func.__name__] = func @collect def add(a,b): return a+b # adds item to dictionary d (key = 'add', value = func) # repeat for other user-command functions # finally: cmd_dict = collect() # returns the dictionary cmd = input('enter a command>') func = cmd_dict.get(cmd) -- Bob Gailer _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor