On 17 juil, 15:56, mk <[EMAIL PROTECTED]> wrote: > Calvin Spealman wrote: > > To your actual problem... Why do you wanna do this anyway? If you want > > to change the function in the dictionary, why don't you simply define > > the functions you'll want to use, and change the one you have bound to > > the key in the dictionary when you want to change it? In other words, > > define them all at once, and then just d['1'] = new_f1. What is wrong > > with that? > > Well, basically nothing except I need to remember I have to do that. > > Suppose one does that frequently in a program. It becomes tedious. I > think I will define some helper function then: > > >>> def helper(fundict, newfun): > ... fundict[newfun.func_name] = newfun > ... > > _If_ there were some shorter and still "proper" way to do it, I'd use > it.
You're halfway there. from functools import partial callbacks = {} register_callback = partial(helper, callbacks) @register_callback def f1(arg): print "f1", arg callbacks['f1']('ok') @register_callback def f1(arg): print "new f1", arg callbacks['f1']('ok') -- http://mail.python.org/mailman/listinfo/python-list