# [CentralOH] Tip for string interpolation

Daniel 'Dang' Griffith pythondevdang at lazytwinacres.net
Thu Aug 9 23:19:31 CEST 2007

```As an aside (if you can have an aside at the beginning), I've never
really liked the name "string interpolation". I usually just call it
"the string formatting operator". But anyway...

I came across a bunch of good Python tips at
"<http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html>http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html",
and got excited about one in particular, and wanted to share my
interpretation of the string interpolation tip. It was new to me, and
I am not taking credit for it. I'm just sharing it, in case we run
around in different circles, as we reinvent different wheels.

No doubt, you've done this kind of thing, to print or evaluate a
string containing some formatted values:

a = 'Three'
b = 5
print "A=%s, B=%d" % (a, b)

And, you might also have used a dictionary to hold some values, and
then used that dictionary in a similar manner. Note that when using a
dictionary, you put the key name between parentheses, between the %
sign and the type (s, d, l, etc):

mydict = {'a': 'Three', 'b': 5}
print "A=%(a)s, B=%(b)d" % mydict

But here's one I learned from this tip. If the variables are in the
same namespace, you can just refer to that dictionary:

a = 'Three'
b = 5
print "A=%(a)s, B=%(b)d" % locals()
(or if the code is within a class, print "A=%(a)s, B=%(b)d" % self.__dict__)

In other words, if you want to print the values of some variables,
don't bother enumerating them as in style 1, or maintaining a
separate dictionary, as in style 2.