[Python-Dev] String literal concatenation & docstrings
Guido van Rossum
gvanrossum at gmail.com
Sat Nov 27 18:13:25 CET 2004
> It means that:
>
> print "this line continues"
> "on the next line"
>
> does not work, while the following works:
>
> a = "this line continues"
> "on the next line"
As has been pointed out already, it doesn't.
The right way to look at this is not using the statement/expression
distinction, but to look at whether the newline between the two
literals is significant to the parser or not. A significant newline
ends a statement; an insignificant one is equivalent to a space. The
rule is that newlines (outside string quotes anyway) are significant
unless either escaped with \, or contained within matching
parentheses.
So if you want to print or assign a long string broken across multiple
lines without having to use triple-quoted strings (which have their
own set of issues), you can write this:
print ("this line continues"
" on the next line")
Note that I fixed a common buglet in your example: the words
"continues" and "on" should be separated by a space. Not important for
the example, of course, but (having used this idiom and similar ones a
lot) something to keep in mind when splitting a long string across a
line this way.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list