[読了時間5分、実装時間30分]
みなさんこんにちは。本日はPythonコードの規則であるPEP8と、自分のコードがPEP8に準拠しているかチェックする方法を紹介します。
PEP8とは
PEP8とは、Python開発者であるGuido van Rossumらによって作られた、Pythonコードの書き方をまとめた規則です。一般に「コードの書き方」というと「アルゴリズム設計・論理展開の方法」と「コード上での表記方法」があると思いますが、PEP8では主にコード上での表記方法が示されています。
PEP8の主な内容
PEP8で指定されている事項は多岐にわたりますが、例えば次のようなことが示されています。詳細は上記本文・訳を参照して下さい。
- インデントはスペースが望ましい。タブとスペースを混ぜるのは禁止。
- 1行は79文字まで。
- 「I」や「O」は紛らわしいので変数に使わない。
- 関数の引数で改行する場合はインデントを加える。
- モジュール名は全て小文字にする。
PEP8のと整合的かチェックする方法
上記の規則を何も見ずに守ることが出来ればよいのですが、項目がたくさんあるため大変です。ましてや、既に書かれてあるコードが規則にあっているかチェックしたり、1つ1つ修正するのはもっと労力を使います。
そこでご紹介するのは、flake8とautopep8とよばれるモジュールです。これらのモジュールは、自分の書いたコードがPEP8に従っているかチェックし、自動で修正してくれます。
本日は、こちらの記事にしたがって、VS(Visual Studio Code)環境で上記モジュールを用いる方法を紹介します。
試しに以下のようなコードを修正してみました。
before
単純な関数のはずですが、PEP8としては改善の余地があるようです。例えばdefの引数である「a」にカーソルをあてると、以下のような表示が出てきます。
どうやら、引数のカンマの次にはスペースがあると望ましいようです(初めて知りました)。そのほか、赤下波線のある部分も指摘されています。
これらを自動修正してみましょう。上記リンク先に従うと、Shift+Alt+Fで出来るはずです。
after
※波線は残してあります
スペースやインデントが適宜挿入され、PEP8に従ったコードになりました!
PEP8を使って、見やすいコードを心がけましょう!
執筆者:宮本(TA)