ドキュメンテーション文字列

ドキュメンテーション文字列あるいはdocstring（、ドックストリング）はプログラミングにおいてコメントのようにソースコードの特定の部分を文書化するための文字列リテラルのこと。通常のコメントやdocblockのように解析時に構文木から除外されず、プログラムの実行時まで保持されるため対話的なヘルプやメタデータとして利用できる。
歴史的にはEmacsの前身のTECOに初めて実装された。
docstringをサポートするプログラミング言語にはPython、Lisp、Elixir、Clojure、 、Julia and Haskellがある。
実装例.
Elixir.
言語レベルでドキュメンテーションがサポートされており、Markdownがデファクトのマークアップ言語として利用されている。
def module MyModule do
 @moduledoc """
 Documentation for my module. With **formatting**.
 @doc "Hello"
 def world do
 "World"
 end
end
Lisp.
Lispではdocstringとして知られる。Common Lisp標準において、処理系は必要に応じてdocstringを理由なくいつでも破棄してよいと定めている。docstringが温存されているとき、DOCUMENTATION関数で表示および変更できる。
 (defun foo () "hi there" nil)
 (documentation #'foo 'function) => "hi there"
Python.
Pythonでは定義（"def"または"class"）の直後の文に文字列リテラルを記述することでコードオブジェクト（モジュール、クラス、または関数）のdocstringになる。他のタイプの式ではなく、文字列リテラルでなくてはならない。コードオブジェクトのdocstringは、そのオブジェクトのcodice_1属性およびcodice_2関数を介して利用できる。
以下のコードはPythonファイルでdocstringを宣言する。
"""The module's docstring"""
class MyClass:
 """The class's docstring"""
 def my_method(self):
 """The method's docstring"""
def my_function():
 """The function's docstring"""
上記のコードをとして保存したとき、インタラクティブシェルで以下のようにdocstringにアクセスできる。
»> import mymodule
»> help(mymodule)
The module's docstring
»> help(mymodule.MyClass)
The class's docstring
»> help(mymodule.MyClass.my_method)
The method's docstring
»> help(mymodule.my_function)
The function's docstring