さわやかに

Pythonのことだったり子供のことだったり

Python コーディング規制

PEP8

コーディング規制が定められているもの
ペップエイトと呼ぶ

  • インデントはスペース4つとしてタブは使わない
  • 79文字以下で行を折り返す
  • 可能であればコメント行は独立させる
  • docstringを使う
  • 演算子の周囲やカンマの後ろにはスペースを入れるが、カッコのすぐ内側には入れない
    例) a = f(1, 2) + g(3, 4)
  • クラスにはCamelCase(単語の頭文字を大文字にして接続するスタイル)
  • 関数やメソッドにはlower_case_with_underscores(小文字の単語同士をアンダースコアで繋ぐ)
  • メソッドの第一引数としては常にselfを使うようにする

PEP8に違反していないか調べる

pycodestyleをつかう

仮想環境(venv-test)で実行
sample.pyには「import sys, os」と入力してある
PEP8によれば、別のモジュールをインポートする時は1行ずつインポートするべき

python -m venv venv-test
venv-test/scripts/activate
(venv-test)> pip install pycodestyle
(venv-test)> pycodestyle sample.py
sample.py:1:11: E401 multiple imports on one line # 1行に複数のインポート
sample.py:1:15: W292 no newline at end of file      # ファイルの終わりに改行なし

使用していないモジュールや変数をチェックする

Flake8(フレークエイト)をつかう

(venv-test)> pip install flake8
(venv-test)> flake8 sample.py
sample.py:1:1: F401 'sys' imported but unused       # 'sys'はインポートされましたが使用されていません
sample.py:1:1: F401 'os' imported but unused        # 'os'はインポートされましたが使用されていません
sample.py:1:11: E401 multiple imports on one line # 1行に複数のインポート
sample.py:1:15: W292 no newline at end of file      # ファイルの終わりに改行なし