Using eval with substitutions

Fredrik Lundh fredrik at pythonware.com
Thu Aug 31 07:32:07 EDT 2006


abhishek at ocf.berkeley.edu wrote:

>>>> a,b=3,4
>>>> x="a+b"
>>>> eval(x)
> 7
>>>> y="x+a"
> 
> Now I want to evaluate y by substituting for the evaluated value of x.
> eval(y) will try to add "a+b" to 3 and return an error. I could do
> this,
>>>> eval(y.replace("x",str(eval(x))))
> 10
> 
> but this becomes unwieldy if I have
>>>> w="y*b"
> and so on, because the replacements have to be done in exactly the
> right order. Is there a better way?

instead of

	x = "a+b"

do

	x = "a+b"
	x = eval(x)


or

	x = eval("a+b")

(I'm afraid I don't really understand the point of your examples; what 
is it you're really trying to do here ?)

</F>




More information about the Python-list mailing list