はじめに
自分の書いたコードを見てみて、読みやすいと感じますか?
自分でも読みにくいと感じるなら、おそらく他の人はもっと読みづらいでしょう。
ソースコードは書いている時間よりも、読まれる時間のほうが長いことがほとんどです。これは、プログラムは一般的に開発期間よりも運用・保守期間のほうが長いからです。
このため、誰にでも読みやすい、きれいなプログラムを書く必要があります。
この記事では、Python初心者の方向けに、Pythonのコーディング規約についてお伝えしていきます。
ぜひご一読して、読みやすいコードを書けるようになりましょう。
コーディング規約ってどんなもの?
コーディング規約とは、コードレイアウトや命名規則、設計方法などを定めたソースコードのスタイルガイドです。
Pythonは、誰が書いても比較的読みやすいコードになるように設計されていますが、それでも読みにくいコードになってしまうこともあります。
コーディング規約に従えば、一貫性が保たれ、誰にでも読みやすいコードに仕上がります。
どのコーディング規約を使うべきか?
Pythonでよく使われているのは、「PEP8」と呼ばれるコーディング規約です。
これは、Pythonの標準ライブラリにも適用されている公式のコーディング規約です。
その他にも、グーグルが公開している「Google Python Style Guide」もあり、こちらも参考になります。
この記事では、公式のコーディング規約であるPEP8を紹介します。
PEP8のコーディング規約
ここでは、PEP8から重要な規約をピックアップして説明していきます。
インデント
Pythonはインデントでブロックを形成するため、インデント幅は重要です。
スペース4つで1レベルインデントとし、行の途中で改行する場合は次の行をカッコなどの位置に合わせましょう。
また、インデントにタブを使わないようにしましょう。
タブでインデントを行うと、閲覧環境によって幅が変わってしまいます。
行の長さ
ウィンドウの幅を超えるような、長すぎる行は可読性を低下させます。
1行の長さは79文字までとし、適宜改行を入れましょう。または、行が短くなるように工夫します。
2項演算子の改行
2項演算子(+など)を含む行を改行する場合は、行頭に2項演算子を配置しましょう。
こうすることで、演算の対象になっている右辺がわかりやすくなります。
空行
トップレベルに存在する関数やクラスは、2行の空行を開けて定義しましょう。
また、クラス内の変数やメソッドは1行の空行を開けて定義します。
ソースファイルのエンコード
Pythonのソースファイルのテキストエンコーディングには「UTF-8」を使いましょう(Python 2.x系の場合はASCII)。
命名規則
変数名や関数名、メソッド名は小文字から始め、クラス名は大文字から始めて単語の区切りも大文字にします。
また、定数はすべて大文字にし、単語の区切りをアンダースコア(_)で区切ります。
ここでは、PEP8の一部を紹介しました。完全な規約については、下記の日本語訳が参考になるでしょう。
PEP8日本語訳:
https://pep8-ja.readthedocs.io/ja/latest/
コーディング規約に準拠しているかチェックしよう
PEP8のコーディング規約はそれなりのボリュームがあるため、覚えきれないという方もいるでしょう。
規約に準拠しているかチェックするのは骨が折れます。
そのため、ツールを使ったチェックをオススメします。規約と同名の「pep8」というチェックツールがパッケージとして提供されています。
また、この連載でも紹介した「PyCharm」という統合開発環境(IDE)では、標準でPEP8によるコードスタイルチェックに対応しています。
どちらかの方法でチェックしてみるとよいでしょう。
まとめ
あなたの書いたコードをチェックしてみて、どうでしたか?
おそらくなんらかの規約違反が検出されたことでしょう。
とはいえ、100%コーディング規約に従う必要はありません。重要なのはコーディング規約に従うことではなく、コードを読みやすくすることです。
PEP8でも一貫性にこだわらずに、読みやすさを優先するようにと書かれています。
基本的にはコーディング規約に従い、逆に読みにくくなる部分は独自のスタイルを適用しましょう。