コメントやドキュメンテーション(docstring)を自動でチェックする、いわゆる “lint(リンター)ツール” について、初心者向けに「何か」「なぜ使うか」「どう使うか」「具体的なおすすめツール&設定例」を整理します。
1. 「Lint(リンター)」とは?
- “Lint” は元々 C 言語用語で「コードについた綿くず(lint)のような細かいミス」を探すツールの名称。
- Python の世界では、コードのスタイル(インデント・スペース・変数名など)、ドキュメンテーション(docstring/コメント)、潜在的なバグ(未使用変数・誤った関数引数など)をチェックしてくれるツール群があります。
- コメント・docstring に特化して「この関数の説明が書かれてるか」「引数/戻り値の説明が正しいか」「ドキュメンテーションが実際の関数シグネチャと一致しているか」などをチェックするものもあります。
2. なぜコメント/docstringも自動チェックすべきか?
- コメント/docstring が ない・適切でない・古くなっていると、後からコードを読む人(自分含む)が理解しづらくなります。
- 手動で「コメントちゃんと書いた?」とチェックするのは面倒なので、ツールに任せることで抜けや誤りを減らせます。
- 自動化しておけば、コードレビューのとき「コメントが無い」だけで指摘されるのではなく、品質の高いコメントを書く習慣が付きます。
- 実際、良質なコードには「コードの意図(コメント)」「仕様(docstring)」「実装」の三位一体が整っており、リンターはその整合性も見てくれます。
3. どう使う? ツール&基本的な設定
以下、Pythonで使えるおすすめのツールとコメント/docstringチェックに関する設定例です。
主なリンター・ツール
- Pylint:コード全体のスタイル・バグ・コメント不足など多角的にチェック。
- Flake8:比較的軽量、スタイル(PEP 8)+プラグインで拡張可能。
- darglint:docstring(特に引数や戻り値の記述)が関数シグネチャと合っているかをチェック。
- pydocstyle(または pydoclint):docstring のスタイル(例えば PEP 257 準拠かどうか)をチェック。
シンプルな導入手順
pip install pylint flake8 darglint pydocstyle(必要なものを選び)- プロジェクトルートに設定ファイルを置く(例:
.pylintrc、setup.cfg、tox.ini) - コマンドラインで実行:例
pylint my_module.pyまたはflake8 . - エディタ(例えば Visual Studio Code、PyCharm)でリアルタイムに警告が見えるようプラグイン・拡張を設定。
- コメント・docstringに関しては、例えば “関数に docstring 書いてね” とか “引数説明があるか” というルールを設定しておくと良い。
コメント/docstringチェックに関する設定例
darglintの設定例(setup.cfg):
[darglint]
docstring_style = google
ignore = DAR402 ; 例:特定エラーを無視
Pythonpydocstyle/pylintで “missing-docstring”(ドキュメンテーションが無い)などを警告に出す設定を有効化。flake8にプラグインを加えて “docstring‐complete” のチェックを入れる。
4. コメント/docstring専用のチェックポイント
ツールを使うときに「何をチェックしたいか」を整理しておくと、ルール化しやすいです。
チェック項目の例
- 各モジュール・クラス・関数に docstring があるか。
- docstring の最初の行(要約)あり/なし。
- docstring に
Args:/Returns:/Raises:セクションがあるか(スタイルによる)。 - docstring に書かれている引数名が実際の関数引数と一致しているか。例えば
a, bを受ける関数に docstring がx, yと書いてあってはいけない。 - コメント(
#)として、変数や処理の「なぜ?」が書かれているか。自動チェックは難しいが、規約として「TODOコメントを必ず残す」「不要なコメントを削除」など決めておくと良い。 - Docstringスタイル(Google/Numpy/reST)にプロジェクトで統一されているか。統一が無いと自動チェックが困難になります。
5. 実践例:簡単な設定・実行
例えば、プロジェクトフォルダに以下のような setup.cfg を置きます:
[flake8]
max-line-length = 88
exclude = .git,__pycache__,build,dist
[pydocstyle]
convention = google
add-ignore = D100,D104 ; 例:モジュールdocstring/クラスdocstringをこのプロジェクトでは任意に
[darglint]
docstring_style = google
ignore = DAR401 ; 例:戻り値記述が無くてもOKにする
その後、コマンドラインで:
flake8 .
pydocstyle my_module.py
darglint my_module.py
と実行すると、「docstringが無い」「引数名が合ってない」「スタイルが守られていない」などの警告が出るようになります。
6. 初心者が気をつけるポイント・落とし穴
- 最初から “全部チェック” をオンにしすぎると、警告だらけになって「うわ、めんどくさい!」となることがあります。まずは「docstring必須」と「コメント不要な警告を抑制」など、段階的にルールを強くしていくのが良い。
- コメントやdocstringの自動チェックは 「完璧の代替」ではなく補助ツール。ロジックの正しさ・設計の妥当性までは見てくれません。
- チーム・プロジェクトで「どのスタイルを使うか」予め決めておかないと、リンター導入後に議論が多くなります。(Googleスタイル/NumPyスタイルなど)
- コメント・docstringの内容(「なぜこの処理をしているか」など)は自動チェックが難しいので、チェック項目外でもレビューで意識することが必要です。
- 「警告が多すぎて無視する」ようになると意味が無いので、リンターを継続的に使い、警告をひとつずつ潰す文化を作るのが鍵。

