[Tutor] [Fwd: Re: from string to variable name]

Kent Johnson kent37 at tds.net
Thu Oct 5 17:36:55 CEST 2006


Python wrote:
> On Thu, 2006-10-05 at 09:17 -0500, Luke Paireepinart wrote:
> (actually from Frank)
>>> I have a parameterized string template, I publish it using
>>>
>>>   print mytemplate % locals()
> Original post asked to create variable in local namespace from string.
>> so I want to assign a value to a variable whos name is available only
>> as a string to me. 
>> that variable does not exist yet in the local namespace.
>>
>> from: t = "myvar"
>> to: myvar = 3
> 
> You can do something like:
> 	templatevars = dict(locals())	# copy of locals
> 	templatevars[t] = 3
> 	print mytemplate % templatevars
> 
> It is OK for templatevars to have extra variables.  You will get a
> KeyError if templatevars is missing a value.

A slight variation, if you have multiple values you want to accumulate 
in a dict, would be something like this using dict.update():

templatevars = {}
...
templatevars['t'] = 3
...
templatevars['u'] = 4
...
templatevars.update(locals())
print mytemplate % templatevars

Kent



More information about the Tutor mailing list