web-dev-qa-db-ja.com

pythonモジュールdocstringに何を入れますか?

わかりましたので、私は PEP 8PEP 257 の両方を読みました。そして、関数とクラスのためにたくさんのdocstringsを書きましたが、何については少し確信が持てません。モジュールのdocstringに入れる必要があります。少なくとも、モジュールがエクスポートする関数とクラスを文書化する必要があると考えましたが、著者名、著作権情報などをリストするモジュールもいくつか見ました。どのように良いpython docstringを構造化する必要がありますか?

148
user297250

仕様 を引用するには:

のdocstring 脚本 (スタンドアロンプ​​ログラム)は、不正な引数または欠落した引数(または「ヘルプ」の「-h」オプション)でスクリプトが呼び出されたときに出力される「使用」メッセージとして使用できます。このようなdocstringは、スクリプトの機能とコマンドラインの構文、環境変数、およびファイルを文書化する必要があります。使用法のメッセージはかなり複雑な場合があり(複数の画面がいっぱい)、新しいユーザーがコマンドを適切に使用するのに十分である必要があります。

のdocstring モジュール 通常、モジュールによってエクスポートされるクラス、例外、および関数(およびその他のオブジェクト)を、それぞれの1行の要約とともにリストする必要があります。 (通常、これらの要約は、オブジェクトのdocstringの要約行よりも詳細が少なくなります。)パッケージのdocstring(つまり、パッケージの__init__.pyモジュールのdocstring)は、パッケージによってエクスポートされたモジュールとサブパッケージもリストする必要があります。

のdocstring クラス その動作を要約し、パブリックメソッドとインスタンス変数をリストする必要があります。クラスがサブクラス化されることを意図しており、サブクラス用の追加のインターフェースがある場合、このインターフェースは個別に(docstringに)リストする必要があります。クラスコンストラクターは、__init__メソッドのdocstringに文書化する必要があります。個々のメソッドは、独自のdocstringで文書化する必要があります。

のdocstring 関数 または 方法 ピリオドで終わるフレーズです。関数またはメソッドの効果を、説明としてではなく、コマンド( "Do this"、 "Return that")として規定しています。例えば「パス名を返す...」と書かないでください。関数またはメソッドの複数行のdocstringは、その動作を要約し、引数、戻り値、副作用、発生した例外、および呼び出すことができる場合の制限(該当する場合はすべて)を文書化する必要があります。オプションの引数を指定する必要があります。キーワード引数がインターフェースの一部であるかどうかを文書化する必要があります。

41
Remi