[Python-Dev] Re: Variables in strings..

Peter Schneider-Kamp peter@schneider-kamp.de
Mon, 24 Jul 2000 12:40:31 +0000

Gabriel Ambuehl wrote:
> print "Hello $name"
> would do the job. Now the only solution I could find in Python was
> this awful
> print "Hello %(name)s" % var()

There is of course:

print "Hello", name
print "Hello", name[1]

But that is probably not what you ask for. There is a thread about
extending the print statement right now at the python-dev mailing list:

Part of this thread deals with what you are looking for.
You may want to read the whole thread, but a good point to start
is Tim's first post in that subthread:


> syntax which, after all, doesn't even seem to support lists as
> print "Hello %(name[1])s" % var()
> just raises a KeyError. May anyone point me to some more comfortable
> ways than just endless concatenation of strings and lists which doesn't really
> help for readibility (which is one of the main points why I'm
> switching from Perl to Python)?

As far as I have understood matters, the $name $(name[1]) syntax
woul be able to do what you want. But then I have not really
followed that thread closely.


P.S.: To python-dev: Wouldn't it be better to discuss this
                     on python-list (or pep-dev<wink>)?
Peter Schneider-Kamp          ++47-7388-7331
Herman Krags veg 51-11        mailto:peter@schneider-kamp.de
N-7050 Trondheim              http://schneider-kamp.de