docstring【ドキュメンテーション文字列】documentation string
docstringとは?
docstringは通常、関数やクラスの定義の直後に、文字列リテラルとして記述する。Pythonの場合、三重引用符(""")で囲んだ文字列がdocstringとして認識される。この文字列はプログラムの実行には影響せず、コード自体の動作を変えることはない。記述した内容は、各オブジェクトの__doc__属性としてプログラムから参照でき、ドキュメント生成ツールによって自動的に読み取られる。
コメントとの違い
docstringは一般的なコメントとは性質が異なる。コメントはソースコードを読む人間だけを対象としており、実行時には取り除かれて完全に無視される。一方、docstringは実行時にも文字列オブジェクトとして保持され、専用の関数(Pythonのhelp()など)を通じてプログラムの実行中にアクセスできる。統合開発環境や各種ツールはdocstringを解析してヒント表示や自動補完を行うことが可能になっている。
記述の慣習と書式
docstringの書き方にはいくつかの慣習が存在する。Pythonの公式規約であるPEP 257では、一行で収まる簡潔なものと、複数行にわたる詳細なものの二種類が定められている。より具体的な書式としては、GoogleスタイルやNumPyスタイル、reStructuredTextを用いたSphinxスタイルなどが普及しており、引数や戻り値、例外などの情報を構造化して記述するために使われる。プロジェクトやチーム内でいずれかの書式に統一するのが一般的な運用である。
言語による違い
単に「docstring」という場合はPythonのそれを指すことが多いが、同様の仕組みはLispやJuliaなど他の言語にも存在する。また、コメントに規定の書式で仕様を記述すると自動的にドキュメント化してくれる仕組みはより広範に用いられており、Javaの「Javadoc」、JavaScriptの「JSDoc」、PHPの「PHPDoc」などがよく知られている。これらは記述をコードとしては解釈しないが、ドキュメントをコードに埋め込んで記述する考え方は共通している。
