2017-09-04 5 views
1

私は簡単な電子メールpythonスクリプトでdocstringsに関する質問があります。このpythonコードでdocstringを使うのは何ですか?

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

このようなdocstringsは、電子メールスクリプトで頻繁に参照されます。私の質問は、docstringは何をしていますか?私はdocstringsがhelpコマンドなどのためだけに使われていると思った。これが愚かな質問であれば謝ります。

ありがとうございました!

+1

改行を含む単なる文字列リテラルです。 –

+0

あなたの質問に答えた場合は、[回答をマークする]ことができます(https:// stackoverflow。com/help/someone-answers)が受け入れられました。 –

答えて

0

それはdocsから、複数行の文字列を記述するのに便利だからです:

文字列リテラルは、複数行にまたがることができます。 1つの方法は、 トリプルクォートを使用しています: "" "..." ""または '' '...' ''。

2

"""..."""(3重引用符)の文字列は、複数行の文字列と呼ばれます。複数行の文字列とドキュメントストリングには区別があります。後者は前者のサブセットです。

これは変数に割り当てられているため、ではなく、のdocstringです。 docstringのは、あなたがこのように、関数の先頭に見つけるだろうものです:

def foo(): 
    """This is a doc-string""" 
    pass 

そしてfoo.__doc__をプリントアウトは、あなたが関数内でのみ最初の複数行の文字列を理解しておく必要があり、あなたに

print(foo.__doc__) 
'This is a doc-string' 

を与えます(割り当てられていない場合)は関数のドキュメントストリングになり(最適化スイッチが設定されていなければ)、残りはすべて破棄されます。対照的に

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

変数messageに割り当てられたいくつかのCスタイルのフォーマット引数を複数行の文字列であることを起こります。

さらにリーディング:

+1

実際には、ドキュメントストリングはマルチライン文字列の「サブセット」ではありません。ドキュメントストリングは3倍にする必要はありません。 –

1

ドキュメント文字列が、普通文字列(str)ではありません。三重二重引用符(""")、三重一重引用符(''')を使用すると、長い文字列として使用するようにPythonに指示します。この文字列は、\nで区切られています。 Docstringでは、この種の長い文字列を使用して読みやすくしています。あなたのコードで

、それは対象を指定する変数を使用して、電子メールの準備だように思える、テキスト、CCなど

はそれが理にかなって願っています。

関連する問題