私のコード:
"""
def
"""
k="""
abc
"""
print(k)
print('abc2')
私はそれを実行しようとします:
sam@sam-M51Kr:~/code/python$ python test.py
abc
abc2
sam@sam-M51Kr:~/code/python$
コードの冒頭では、「"」がコメントになっているようです。
しかし、なぜkは'abc'の2つの空の行なのでしょうか。
ありがとう〜
私のコード:
"""
def
"""
k="""
abc
"""
print(k)
print('abc2')
私はそれを実行しようとします:
sam@sam-M51Kr:~/code/python$ python test.py
abc
abc2
sam@sam-M51Kr:~/code/python$
コードの冒頭では、「"」がコメントになっているようです。
しかし、なぜkは'abc'の2つの空の行なのでしょうか。
ありがとう〜
"""は文字列の区切り文字です。
PEP257から
docstringは、モジュール、関数、クラス、またはメソッド定義の最初のステートメントとして出現する文字列リテラルです。このようなdocstringは、
__doc__
そのオブジェクトの特別な属性になります。
したがって、メソッドの直後の文字列はコメントであり、他のツールでコードを文書化するために使用できます。割り当てられていない文字列リテラルを他の場所で使用する場合、それはコードを読む人を助けるための単なるコメントです(前のリンクで言及されたいくつかの場合を除く)
三重引用符で囲まれた文字列では、エスケープされていない改行と引用符が許可されます(保持されます)。ただし、行内の3つのエスケープされていない引用符は文字列を終了します。(「引用符」は、文字列を開くために使用される文字、つまり'または"のいずれかです。)
したがって、キャリッジリターン/ラインフィードが含まれます。
Q:「しかし、なぜkは'abc'の2つの空の行なのですか?」
k="""
abc
"""
"""
(も)は改行を保持する'''
複数行の文字列区切り文字であるため、最初のの後に改行があり、その後に空白行が表示されるのはそのためです。"""
abc
を使用repr()
すると、これを明示的に確認できます。
repr(k)
"'\\n abc\\n '"
"""
長い、複数行の文字列を書くために、またはあなたが正しく指摘したように、 docstring(またはthis )の形式でのドキュメントの補助として使用されます。
""" ... """
単なる複数行の文字列です。それで
"""
abc
"""
は改行で、abc
次に別の改行です。
オブジェクト(この場合はモジュール)の最初の割り当てられていない文字列は、「docstring」と呼ばれます。__doc__
定義されているスコープ内の特別な変数に自動的に割り当てられます。
もう1つは、複数行の文字列です。これらは、埋め込まれた改行文字を保持する「現状のまま」の文字列です。したがって、を割り当てる最初の行にk
は、文字列の最初と最後に改行があります。通常、端末には表示されません。