On Sat, 20 Dec 2008, Terry Reedy wrote: > John O'Hagan wrote: > > I have a lot of repetitive assignments to make, within a generator, that > > use a function outside the generator: > > > > var1 = func("var1", args) > > var2 = func("var2", args) > > var3 = func("var3", args) > > etc... > > > > In each case the args are identical, but the first argument is a string > > of the name being assigned. It works fine but I'd like to reduce the > > clutter by doing the assignments in a loop. I've tried using exec(): > > > > for name in name_string_list: > > exec(name + ' = func(\"' + name + '\", args)') > > > > but in the local namespace it doesn't understand func(), and if I give it > > globals() it doesn't understand the args, which come from within the > > generator. > > > > What's a good way to do this kind of thing? > > Put everything in your own namespace > > myvars={} > for name in namelist: > myvars[name]=func(name,args)
Likely I'm missing something, but don't I still have to do var1 = myvars['var1'] var2 = myvars['var2'] var3 = myvars['var3'] ...etc. to make the assignments? Regards, John -- http://mail.python.org/mailman/listinfo/python-list