Fix Python – Python style – line continuation with strings? [duplicate]

Question

Asked By – sjmh

In trying to obey the python style rules, I’ve set my editors to a max of 79 cols.

In the PEP, it recommends using python’s implied continuation within brackets, parentheses and braces. However, when dealing with strings when I hit the col limit, it gets a little weird.

For instance, trying to use a multiline

mystr = """Why, hello there
wonderful stackoverflow people!"""

Will return

"Why, hello there\nwonderful stackoverflow people!"

This works:

mystr = "Why, hello there \
wonderful stackoverflow people!"

Since it returns this:

"Why, hello there wonderful stackoverflow people!"

But, when the statement is indented a few blocks in, this looks weird:

do stuff:
    and more stuff:
        and even some more stuff:
            mystr = "Why, hello there \
wonderful stackoverflow people!"

If you try and indent the second line:

do stuff:
    and more stuff:
        and even some more stuff:
            mystr = "Why, hello there \
            wonderful stackoverflow people!"

Your string ends up as:

"Why, hello there                wonderful stackoverflow people!"

The only way I’ve found to get around this is:

do stuff:
    and more stuff:
        and even some more stuff:
            mystr = "Why, hello there" \
            "wonderful stackoverflow people!"

Which I like better, but is also somewhat uneasy on the eyes, as it looks like there is a string just sitting in the middle of nowhere. This will produce the proper:

"Why, hello there wonderful stackoverflow people!"

So, my question is – what are some people’s recommendations on how to do this and is there something I’m missing in the style guide that does show how I should be doing this?

Thanks.

Now we will see solution for issue: Python style – line continuation with strings? [duplicate]


Answer

Since adjacent string literals are automatically joint into a single string, you can just use the implied line continuation inside parentheses as recommended by PEP 8:

print("Why, hello there wonderful "
      "stackoverflow people!")

This question is answered By – Sven Marnach

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0