Pocket

[読了時間5分、実装時間30分]

みなさんこんにちは。本日はPythonコードの規則であるPEP8と、自分のコードがPEP8に準拠しているかチェックする方法を紹介します。

PEP8とは

PEP8とは、Python開発者であるGuido van Rossumらによって作られた、Pythonコードの書き方をまとめた規則です。一般に「コードの書き方」というと「アルゴリズム設計・論理展開の方法」と「コード上での表記方法」があると思いますが、PEP8では主にコード上での表記方法が示されています。

PEP8の主な内容

PEP8で指定されている事項は多岐にわたりますが、例えば次のようなことが示されています。詳細は上記本文・訳を参照して下さい。

  • インデントはスペースが望ましい。タブとスペースを混ぜるのは禁止。
  • 1行は79文字まで。
  • 「I」や「O」は紛らわしいので変数に使わない。
  • 関数の引数で改行する場合はインデントを加える。
  • モジュール名は全て小文字にする。

PEP8のと整合的かチェックする方法

上記の規則を何も見ずに守ることが出来ればよいのですが、項目がたくさんあるため大変です。ましてや、既に書かれてあるコードが規則にあっているかチェックしたり、1つ1つ修正するのはもっと労力を使います。

そこでご紹介するのは、flake8autopep8とよばれるモジュールです。これらのモジュールは、自分の書いたコードがPEP8に従っているかチェックし、自動で修正してくれます。

本日は、こちらの記事にしたがって、VS(Visual Studio Code)環境で上記モジュールを用いる方法を紹介します。

試しに以下のようなコードを修正してみました。

before

単純な関数のはずですが、PEP8としては改善の余地があるようです。例えばdefの引数である「a」にカーソルをあてると、以下のような表示が出てきます。

どうやら、引数のカンマの次にはスペースがあると望ましいようです(初めて知りました)。そのほか、赤下波線のある部分も指摘されています。

これらを自動修正してみましょう。上記リンク先に従うと、Shift+Alt+Fで出来るはずです。

after

※波線は残してあります

スペースやインデントが適宜挿入され、PEP8に従ったコードになりました!

 

PEP8を使って、見やすいコードを心がけましょう!

執筆者:宮本(TA)