How do I do this? (eval() on the left hand side)

Steven Bethard steven.bethard at gmail.com
Tue Dec 7 16:39:04 EST 2004


It's me wrote:
> How do I do something like this:
> 
> I know that
> 
>     a = 3
>     y = "a"
>     print eval(y)
> 
> would give me a print out of 3 - but how do I do something to the effect of:
> 
>     eval(y) = 4    # hopefully the value of a gets changed to 4

Generally, if you find yourself doing this, you may want to rethink your 
program organization.  That being said, if you are in the global scope, 
one option looks something like:

 >>> a = 3
 >>> y = 'a'
 >>> globals()[y] = 4
 >>> a
4

If you can give us some more context on why you want to do this, we can 
probably suggest a better approach.  There aren't too many places where 
even advanced Python programmers need to use eval...

Steve



More information about the Python-list mailing list