Python のコーディングスタイル (PEP8) のチェック2016年8月11日 | |
はじめにPython のコーディングスタイル (PEP8) のチェックについて。 環境
コーディングスタイルのチェックpep8Python には PEP8 と呼ばれるコーディングスタイルがあるそうである。いちいち手動でチェックするのは大変そうなので、pep8 というプログラムでチェックする。 インストールは次のようにする。 $ pip install pep8 チェックしたいコードに対して、次のように実行する。 $ pep8 test.py 例 test.py
import numpy as np
a=np.matrix('1., 2.; 3., 4.')
b=np.matrix('5., 6.; 7., 8.')
print(a*b)
チェック $ pep8 test.py test0.py:3:2: E225 missing whitespace around operator test0.py:4:2: E225 missing whitespace around operator test0.py:7:1: W391 blank line at end of file "=" の両側にスペースがいると言っているらしい。 autopep8手動で直してもよいが、いっぱいあったら大変なので、autopep8 で自動修正する。 インストール $ pip install autopep8 実行
$ autopep8 test.py
import numpy as np
a = np.matrix('1., 2.; 3., 4.')
b = np.matrix('5., 6.; 7., 8.')
print(a * b)
オプション "-i" でファイルを直接修正する。 $ autopep8 -i test.py 文法のチェックスタイル以前に文法が間違っていたら意味がないので、文法チェッカーを導入する。Python の文法チェッカーの一つに flake8 がある。 インストール $ pip install flake8 例 test.py
import numpy as np
a=np.matrix('1., 2.; 3., 4.'
b=np.matrix('5., 6.; 7., 8.')
print(a*b)
チェック $ flake8 test.py test.py:1:1: E902 TokenError: EOF in multi-line statement test.py:4:2: E999 SyntaxError: invalid syntax 実は flake8 でも PEP8 のチェックができる。 test.py
import numpy as np
a=np.matrix('1., 2.; 3., 4.')
b=np.matrix('5., 6.; 7., 8.')
print(a*b)
$ flake8 test.py test.py:3:2: E225 missing whitespace around operator test.py:4:2: E225 missing whitespace around operator Jupyter Notebook でのチェックJupyter Notebook から pep8 を呼び出すマジックコマンドを公開されているかたがいる (こちら)。pep8magic.py をダウンロード ("Download ZIP") して、~/.ipython/extensions に入れる。そして次のように実行する。 %load_ext pep8magic
%%pep8
import numpy as np
a=np.matrix('1., 2.; 3., 4.')
b=np.matrix('5., 6.; 7., 8.')
print(a * b)
出力
stdin:3:2: E225 missing whitespace around operator
a=np.matrix('1., 2.; 3., 4.')
^
stdin:4:2: E225 missing whitespace around operator
b=np.matrix('5., 6.; 7., 8.')
参考 | |
| PENGUINITIS | |