スポンサーリンク
PEP8とは
PEP8は、Pythonのコーディング規約です。
以下3つの分類に分かれます。
- コードのレイアウト
- コメント
- 命名規約
※PEPはPython Enhancement Proposal(Python 拡充提案)
の略称。
前提事項
以下、PythonのプロジェクトにPEP8を導入する際の前提事項です。
- プロジェクトで独自の規約がある場合はそちらを優先すること。
- PEP8に準拠することによりコードの可読性が落ちる場合は、読みやすさを優先すること。
余談になりますが、PEP8のドキュメントの冒頭には以下記載があります。
コードのレイアウト
インデント
- 1つのインデントを半角スペース4つで統一すること。(タブは使用しない)
- 引数やリストで行が長くなる場合は改行し、括弧の開始部分に要素を合わせること。
- 括弧の直後に改行する場合は、1つインデントを入れること。
- 関数定義で引数が多く改行を入れる場合は、2つインデントを入れること。
(2つインデントを入れることで、引数部分とコード内容でインデントが揃ってしまい、区別が付きにくくなることを防ぎます。)
- if文が長くなる場合は括弧を加えて改行し、改行後にインデントを2つ入れること。
(関数定義と同様に、条件部分とコード内容でインデントが揃ってしまい、区別が付きにくくなることを防ぎます。)
1行の長さ(文字数)
- 79文字以内にすること。
- コメントやdocstringは72文字以内にすること。
- 行が長くなる場合は、括弧や波括弧で囲い、複数行に分割すること。
複数の文を1行で書く
- 原則しないこと。
docstring
- non publicメソッド以外は書くこと。
改行
- トップレベルのクラスや関数は2行分の改行(空行)を入れること。
- クラス内部の関数は1行分の改行(空行)を入れること。
- 二項演算子の前で改行すること。
importの書き方
- 行を分けて書くこと。
クォーテーション
- シングルクォーテーション、ダブルクォーテーションどちらでも可能。(ただし、どちらかに統一すること。)
スペースの入れ方
- 余分なスペースは入れないこと。
ソースファイルのエンコーディング
- UTF-8を使用すること。
コメント
- コードを修正した場合は、コメントも更新すること。
- コメントはセンテンス(文)にすること。
- 次のセンテンスとの間には半角空白文字を2つ含めること。
- ブロックコメントの各行は「#」で始め、その後に半角空白文字を1つ含めること。
- インラインコメントの利用は極力控えること。
- 自明なことは書かないこと。
ブロックコメントの例
インラインコメントの例
命名規約
関数名,変数名
- 小文字のみで、単語間をアンダースコアで区切ること。
関数名の例
変数名の例
クラス名
- キャメルケースで記述すること。
(キャメルケースとは、それぞれの英単語の先頭を大文字にする表記方法。)
参考
より詳しいPEP8の詳細は、 こちら のドキュメントをご参照ください。
以上で本記事の解説を終わります。
よいITライフを!