On May 15, 10:53 am, PatrickMinnesota <[EMAIL PROTECTED]> wrote: > I have a bunch of functions. I want to put them in a list. Then I > want to pass that list into another function which does some setup and > then loops through the list of passed in functions and executes them. > Some of them need arguments passed in too.
Hey Patrick, Is something like the following helpful? >>> def fn1(): print 'fn1' >>> def fn2(): print 'fn2' >>> fn_list = [fn1, fn2] >>> def process(fn_seq): ... # do set up here ... for fn in fn_list: ... fn() >>> process(fn_list) fn1 fn2 The easiest way to extend this for optional argument passing would be to have each function accept keyword arguments, and then to pass a dictionary of arguments in to each: >>> def fn1(**kwargs): print 'fn1' >>> def fn2(**kwargs): print 'fn2: x=%(x)s' % kwargs >>> fn_list = [fn1, fn2] >>> def process(fn_seq): ... x = 'hello' ... for fn in fn_list: ... fn(**locals()) >>> process(fn_list) fn1 fn2: x=hello You could replace 'process' with a list comprehension: >>> args = dict(x='hello again') >>> results = [f(**args) for f in fn_list] fn1 fn2: x=hello again Or use 'map': >>> process = lambda f: f(**args) >>> results = map(process, fn_list) fn1 fn2: x=hello again Sorry, I'm a little bored. - alex23 -- http://mail.python.org/mailman/listinfo/python-list