1. ホーム
  2. python

[解決済み] Pythonスタイル - 文字列で行の継続?[重複)。

2022-04-23 04:04:36

質問

Pythonのスタイルルールに従おうとして、エディタを最大79colに設定しました。

PEPでは、括弧、括弧、中括弧の中でpythonの暗示的継続を使用することを推奨しています。 しかし、文字列を扱うときにcol制限にかかると、ちょっと変なことになるんです。

例えば、複数行の

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

を返します。

"Why, hello there\nwonderful stackoverflow people!"

これは有効です。

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

これを返すので。

"Why, hello there wonderful stackoverflow people!"

しかし、ステートメントが数ブロック分インデントされていると、これは奇妙に見えます。

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

試しに2行目をインデントしてみると。

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

あなたの文字列は次のように終わります。

"Why, hello there                wonderful stackoverflow people!"

これを回避する方法として私が見つけたのは

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

私はこちらの方が好きですが、文字列が何もないところにただ座っているように見えるので、目にはやや不愉快です。 これだとちゃんとしたものが出来上がります。

"Why, hello there wonderful stackoverflow people!"

また、スタイルガイドの中で、私が見逃している、この方法を示すものはないでしょうか?

ありがとうございます。

解決方法は?

以来 隣接する文字列リテラルは、自動的に1つの文字列に結合されます。 PEP 8 で推奨されているように、括弧の中で暗黙の行を続けることができます。

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