コンテンツへスキップ

初心者でもOK!LinterとFormatterでPythonのコードをキレイに書く【Python】(Flake8, Black, isort)

Pythonは文法がシンプルであり、関数定義やif文などのブロックをインデントで指定するので、他のプログラミング言語に比べてコードが書きやすく・かつ読みやすいです。

とはいっても好き勝手に書いていくと読みにくコードができあがります。
読みにくいコードはバグが発生する要因になります。
なのでプログラムを書く際のルールを決めたいですね。

プログラムのソースコードを書く際のコードの書き方や形式に関する決まりごと、ルールはコーディング規約と呼ばれています。

Pythonに関してはPython Enhancement Proposal 8、略してPEP8(ペップエイト)と呼ばれるPython公式のコーディング規約や、Googleが定めた”Google Python Style Guide”と呼ばれるコーディング規約などがあります。

コーディング規約にはインデントはタブではなく、スペース4つが推奨されていたり、関数やクラスの定義の際には改行を2つ入れるなど、結構細かいところまでルールが決められています。

これらのルールに従ってコードを書くことができれば、一貫性があり、読みやすいソースコードを書くことができます。

しかしコーディング規約を読んでもらったらわかるのですが、量が多いのでなかなか覚えられません。コードを書きながらチェックするのも大変です。

そこで登場するのがlinterとformatterです。

Linterとはソースコードを解析し、文法の誤りだけでなく、バグの原因となりそうな部分を検出・警告してくれるツールです。

Formatterはスペースの数や改行の位置等、ソースコードの見た目であるコードのスタイルをチェックし、自動的に修正・整形してくれるツールです。

これらを使うことで、コーディング規約を暗記していなくてもコーディング規約に沿った、読みやすいソースコードを誰でも書くことが可能となります。

PythonではいろいろなLinter・Formatterがありますが、最近ではLinterにはflake8、formatterにはblackとisortがよく使われているようです。

今回はPyhtonでよく使われているLinterとFormatterについて使い方を簡単に見ていきますので、良かったら最後までご覧ください。

テスト環境
macOS Big Sur (Intel) 11.5.1
Python 3.9.2

Black 21.7b0
Flake8 3.9.2
isort 5.9.3

Flake8公式ドキュメント
https://flake8.pycqa.org/en/latest/
——————————————————————————————————————————————–
Black公式ドキュメント
https://black.readthedocs.io/en/stable/
——————————————————————————————————————————————–
isort公式ドキュメント
https://pycqa.github.io/isort/
——————————————————————————————————————————————–
Google Style Guides
https://google.github.io/styleguide/
——————————————————————————————————————————————–
PEP8(原文)
https://www.python.org/dev/peps/pep-0008/
——————————————————————————————————————————————–
PEP8(日本語訳)
https://pep8-ja.readthedocs.io/ja/latest/
——————————————————————————————————————————————–
今後の頑張りに繋がりますので、高評価・チャンネル登録もよろしくお願いします。
↓チャンネル登録は以下のリンクからでもできます!
http://www.youtube.com/channel/UCiSfMiEnihaQbom4dhIZBpQ?sub_confirmation=1

ツイッターでも情報を発信しています。

欲しいものリスト作ってみました。
開発環境を更新したい!!いろいろ実験してみたい!!
https://www.amazon.jp/hz/wishlist/ls/KORH9OT5RT9E?ref_=wl_share

#プログラミング #python #NoelRecordsのプログラミング研究室

Facebooktwittermail

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA