Creating variables from dicts
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Wed Feb 24 02:08:19 EST 2010
On Tue, 23 Feb 2010 20:44:10 -0800, Luis M. González wrote:
> On Feb 24, 1:15 am, Steven D'Aprano
> <ste... at REMOVE.THIS.cybersource.com.au> wrote:
>> On Tue, 23 Feb 2010 19:47:22 -0800, Luis M. González wrote:
>> > On Feb 23, 10:41 pm, Steven D'Aprano
>> > <ste... at REMOVE.THIS.cybersource.com.au> wrote:
>> >> On Tue, 23 Feb 2010 15:41:16 -0800, Luis M. González wrote:
>> >> > By the way, if you want the variables inside myDict to be free
>> >> > variables, you have to add them to the local namespace. The local
>> >> > namespace is also a dictionary "locals()". So you can update
>> >> > locals as follows:
>>
>> >> > locals().update( myDictionary )
>>
>> >> No you can't. Try it inside a function.
>>
>> >> --
>> >> Steven
>>
>> > Sure. Inside a function I would use globals() instead. Although I
>> > don't know if it would be a good practice...
>>
>> Er, how does using globals change the local variables?
>>
>> --
>> Steven
>
> Hmmm.... well, you tell me!
I'm not the one that said you can update locals! You said it. I said you
can't, because you *can't*. The docs warn that you can't change locals,
and if you try it, you will see that the docs are right.
>>> def test():
... x = 1
... locals().update(x = 2)
... print x
...
>>>
>>> test()
1
> As I said, I don't know if this is the recomended way...
It's not recommended because it doesn't work.
--
Steven
More information about the Python-list
mailing list