On Jul 29, 11:02 pm, "Rhodri James" <rho...@wildebst.demon.co.uk> wrote: > On Wed, 29 Jul 2009 19:56:28 +0100, Martin <mdeka...@gmail.com> wrote: > > Hi, > > > I am trying to set the return value from a function to a name which I > > grab from the for loop. I can't work out how I can do this without > > using an if statement... > > > for f in var1_fn, var2_fn, var3_fn: > > if f.split('.')[0] == 'var1': > > var1 = call_some_function(f) > > . > > . > > . > > etc > > > Really I would like to remove the need for this if loop and I am sure > > there is a simple way I am missing? > > It's a little hard to tell what you actually want from your description, > but it looks like you're fighting the language unnecessarily here. If > you have a sequence of functions that you want a sequence of results > out of, you should be thinking in terms of a sequence type. A list, > in other words. > > results = [] > for f in fn1, fn2, fn3: > results.append(f()) > > -- > Rhodri James *-* Wildebeest Herder to the Masses
Hi all, Thanks and apologises I wasn't trying to be cryptic, like all things when I wrote it I thought it was quite transparent. All I was trying to do was call a function and return the result to an a variable. I could admittedly of just done... var1 = some_function(var1_fn) var2 = some_function(var2_fn) var3 = some_function(var3_fn) where var1_fn, var2_fn, var3_fn are just filenames, e.g. var1_fn = 'x.txt'. But I figured I would try and make it slightly more generic whilst I was at it, hence my attempt to use the filenames to create the variable names (hence the loop). I will as suggested try the dictionary option. I appreciate all the suggestions. Thanks Martin -- http://mail.python.org/mailman/listinfo/python-list