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)
If you're sure you want to use the current namespace then:
for name in namelist:
vars()[name] = func(name, args)
--
http://mail.python.org/mailman/listinfo/python-list