4. コーディング規約¶
Pythonの理念は、「シンプルで読みやすく、美しいコード」を重視することです。 プログラミング言語のPerlには、「There's More Than One Way To Do It.」(やり方は一つじゃない)という格言があります。 Pythonにも格言があり 「PEP 20 – The Zen of Python」 には、「明示は暗黙に勝る」「シンプルは複雑に勝る」「可読性は重要」などが掲げられており、誰が読んでも理解しやすいコードを書くことが奨励されています。 このような設計思想により、Pythonは初心者にも扱いやすいプログラミング言語とされています。
主に下記があります。
可読性の向上
誰が書いたコードでも、読みやすく理解しやすいようにする
チーム開発やオープンソースプロジェクトでの共同作業を円滑にする
スタイルの統一
インデント、変数名、関数名、空白の使い方などのルールを定め、コードの見た目を統一
複数人が同じルールで記述することで、「慣れた見た目」を維持できる
バグの予防
曖昧な書き方を避けることで、潜在的なバグの原因となる表現を防ぐ
ツールとの連携
自動フォーマッタ(例:
black
,autopep8
)や静的解析ツール(例:flake8
)が PEP8 に準拠しているため、コード品質を機械的に保てる
このように、PEP8は「Pythonコードを書く際の作法」を定めたガイドラインであり、個人でもチームでも、より良いPythonプログラミングの基盤となるものです。
※ PEP(Python Enhancement Proposal): Pythonの新機能や改善案を提案・記録するための公式文書です。
種類 |
内容 |
---|---|
技術的PEP |
新機能の追加、文法や標準ライブラリの変更など |
情報提供PEP |
スタイルガイドやプロセス文書(例:PEP8) |
プロセスPEP |
開発プロセスや意思決定の方法に関する提案 |
4.1. PEP8 スタイルガイド¶
Pythonには、PEP8(Python Enhancement Proposal 8)という、公式スタイルガイド(コードの書き方のルール)があります。 PEP8は、「コードの可読性と一貫性を高めること」を目的としたスタイルガイドです。
例)カンマの後ろのスペースが異なるコード
スタイルガイドに従う
print(1, 2, 3)
スタイルガイドに従ってない
print(1,2,3)
PEP 8で定義されているルール スタイルガイドであるPEP 8で定義されているルールは、大きく3つに分類できます。
コードのレイアウトに関するルール
コメントに関するルール
命名規約に関するルール
代表的なルールの例
インデント: スペース4つ
行の長さ: 最大79文字まで
空白の使い方
a = b + c
(余計な空白は禁止)
Python標準のスタイルガイド ─ PEP 8 |
|
---|---|
PEP 8 |
|
邦訳ドキュメント |
命名規約¶
一般的な命名の表記方法は次のとおりです。
表記方法 |
説明 |
---|---|
CamelCase |
単語の先頭の文字を大文字にする (CapWords. CapitalizedWords, StudlyCapsとも呼ばれる) |
lowercase |
すべての文字を小文字にする |
lower_case_with_underscores |
単語すべてを小文字にし、それらをアンダースコアでつなげる (snake_caseとも呼ばれる) |
UPPERCASE |
すべての文字を大文字にする |
UPPER_CASE_WITH_UNDERSCORES |
単語すべてを大文字にし、それらをアンダースコアでつなげる |
PEP8での命名規約は下記となります。
用途 |
スタイル |
用例 |
---|---|---|
パッケージとモジュールの名前 |
lowercase |
sysytem, datetime |
クラスの名前 |
CamelCase |
TestCase, HTTPRequest |
関数や変数の名前 |
lowercase または lower_case_with_underscores |
serialize_response, is_connected |
定数 |
UPPERCASE または UPPER_CASE_WITH_UNDERSCORE |
MAX_OVERFLOW, TOTAL |
例外の名前 |
CamelCase, 末尾にError |
ClientApiError |
PEP8の命名規約で重視されているのは「実装よりも使い方を表した名前」にすることです。 命名に迷ったときは、標準ライブラリや公開されているサードパーティライブラリの命名を参考にしてみるのもよいです。
4.2. Pythonの理念の特徴まとめ¶
特徴 |
内容 |
---|---|
読みやすさ重視 |
誰が書いても・読んでも理解しやすいコードを目指す |
シンプルさ |
できるだけ短く簡潔に書けることを大事にする |
明示的な設計 |
「意図が伝わるコード」を書かせる設計 |
学びやすさ |
初学者にもやさしい文法とエラーメッセージ |
一貫性と自由のバランス |
決まりはあるが、必要以上に縛らない |
4.3. 補助ツール¶
PEP8を補助するツールとして下記があります。 コードエディターや開発環境に設定をしてコードスタイルの整形の補助をしています。
flake8:PEP8に違反していないかチェック
black:自動的にPEP8に従って整形
autopep8:既存コードをPEP8準拠に自動修正
4.4. 参考URL¶
Pythonコーディング規約の参考例
より良いコードを書くためのテクニック