[Python-Dev] PEP_215_ (string interpolation) alternative EvalDict
Neal Norwitz
neal@metaslash.com
Mon, 14 Jan 2002 21:10:55 -0500
Neil Schemenauer wrote:
>
> Jason Orendorff wrote:
> > The substitution only happens once.
>
> My example was not well thought out. I was thinking something more
> like:
>
> secret_key = "spam"
> user = "joe"
> x = "$user said: " + raw_input()
> print $x
>
> That wouldn't work either since $ only evaluates literals. Amazing what
> you learn by actually reading the PEP. Yes, I'm an idiot.
Sorry, I haven't followed this thread real closely, but I thought
someone said eval() was used under the covers.
If x is eval'ed and the string is as above, I get the following in 2.1:
>>> secret_key = 'spam'
>>> x = raw_input('? ')
? eval("secret_key")
# Is the following commented print equivalent the the line below it?
### print "You entered $x"
>>> print "You entered", eval(x)
You entered spam
>>> print "You entered %(x)s" % locals()
You entered eval("secret_key")
Not sure if that's the same as what you are talking about though.
Neal