2018年12月20日木曜日

Pythonのコーディング規約pycodestyle

PEP8というPythonコーディングスタイルがあります。それに合っているか確認するpep8というモジュールがあったようですが、pycodestyleに変更になっています(モジュール名が変わっただけで、中身は以前のpep8と変わっていないそうです)。

anacondaでPythonを入れたら一緒に入っていました。

pycodestyle使い方


$ pycodestyle XXX.py
でXXX.pyを調べます。※指摘だけで、直してくれません

出力される行数が実際のコードと合っていないときがあります。コメントアウトを抜いていたりするようです。

オプション --first 同種のコーディング規約違反であれば1回目だけを表示


よく指摘されるもの(自分メモ)


行末にwhitespaceがある
W291 trailing whitespace

空行にスペースが入っている
W293 blank line contains whitespace
(・・・これはVIMの自動インデントでなってしまいます)

この2つ(W291, W293)をVIMで消すコマンド
# スペースが1つ以上末尾にあったら消す
%s/\s\{1,\}$//gc


defブロックの前後は2行あける。上にコメント#があるときはその上を2行あける

E303 too many blank lines (4)
行をあけすぎている(4)は4行空いてますという意味。

E303 too many blank lines (2)
class の中のdefは1行あけるだけで良い

行末にコメントを入れるときは、スペースを2つのあとに  #コメント。
E261 at least two spaces before inline comment
スペースを1つにしてしまいがち。

一行が長い
E501 (^) line too long (82 > 79 characters)
79文字を超えて82文字になっていますよ、という意味。制限値は変更できます。

インデントが揃っていない
E128 (^) continuation line under-indented for visual indent

たとえば
(ABC
 DEF
...
というときに、AとDが揃うこと

E124 (^) closing bracket does not match visual indentation

(ABC
 )

閉じ括弧でおわるときに、Aと)が揃うこと


コンマのあと、コロンのあとにスペースがない
cron_scraping_facewest_climbing_sale.py:96:28: E231 missing whitespace after ','
cron_scraping_facewest_climbing_sale.py:114:20: E231 missing whitespace after ':'


最終行に無駄な空白行がある
cron_scraping_facewest_climbing_sale.py:121:1: W391 blank line at end of file

0 件のコメント:

コメントを投稿