1

次のようなコードに出くわしました。

foo = r"""
        Hello
        How are you
        Goodbye
        """

この規則は、通常の方法で作成された場合に問題を引き起こす可能性のある文字列の書式を維持するための簡単な方法ですか? オンラインで検索してみましたが、問題の性質上、検索用語にはあまり適していません。

4

2 に答える 2

4

これは、トリプルクォートのPython文字列リテラルです。あなたも使うことができます'''。(r前の信号は、リテラルが生の文字列であることを示します。たとえば、ほとんどのエスケープシーケンスは無視されます。これは、シングルクォートとトリプルクォートの両方の文字列に適用されます)。

\nこれらの文字列は、代わりに改行エスケープコードを使用する必要がある一重引用符で囲まれた文字列とは異なり、改行を保持します。

>>> """Line one
... Line two"""
'Line one\nLine two'

このフォーマットには無数の用途があります。複数行の定数を定義する必要がある場合は、最初のトリプルクォートの後にバックスラッシュを使用して、非常に読みやすい文字列リテラルを作成することがよくあります。

LOREM_IPSUM = """\
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
"""

ただし、最も一般的な使用法はdocstringとしてです。関数、クラス、またはモジュールの最初の文字列リテラルは、__doc__後で他のツール(pydocdoctestsなど、特にdocstringの規則に従う場合)で簡単に取得できるように、そのオブジェクトの属性に自動的に割り当てられます。慣例により、これらは通常、tripple-を使用して定義されます。ドキュメントが1行しかない場合でも、引用符で囲まれたリテラル。

于 2012-08-11T10:20:34.040 に答える
0

「通常の方法」とは何ですか?三重引用符は、文字列を複数行にまたがる場合に役立ちます。正式なドキュメントはこちらです。

于 2012-08-11T10:20:42.300 に答える