calendarcodediamondfacebookfingerglobalgoogleplushatenahomepagetopplainpocketrssservicetwitterwordpresshome2searchfoldernext-arrowback-arrowfirst-arrowlast-arrow

Python : コーディング規約をチェックしてみよう

Python を洗練していくためにPEP という拡張提案の仕組みがあります。この中に、コードを綺麗に書くためのPEP 8という Python のコーディング規約があります。

エンジニア速報は Twitter の@commteで 1 日 5 回配信しています。

Sponsored Link

今回は、Python のコーディング規約である PEP8 について、使用頻度が高く初心者の方が特に抑えておくべきルールをチェックしてみましょう。

コーディング規約

PEP8 は標準ライブラリのコーディング規約であり、多くの Python のプロジェクトが PEP 8 に沿って書かれています。PEP 8 によると、コードは書かれるより読まれることが多く、可読性を高める必要があるので、一貫性を重視するとのことです。

これらのことから、コーディングする時は、PEP8 の規約から外れないように理解する必要があります。

PEP 8 原文

PEP 8 日本語訳

コーディング規約に従って書くと、可読性が高くなります。

# インデント幅は4つ class Menu: def info(self): print(self.name) x = Menu() x.name = 'hello' x.info() # ネスト n = [1,2,3,4,5] for hoge in n: print(hoge) if hoge == 3: break # 開き括弧に揃える foo = long_function_name(var_one, var_two, var_three, var_four) # 引数とそれ以外を区別するため、スペースを4つ(インデントをさらに)加える def long_function_name( var_one, var_two, var_three, var_four): print(var_one) # list my_list = [ 1, 2, 3, 4, 5, 6, ]

規約の中で、気になった箇所をざっくりとまとめます。

  • スペースが好ましい(タブよりスペース推奨)
  • インデントにタブをスペースを混ぜてはいけない
  • インデントはスペース 4 つ(エディタのインデント幅も 4 に変更しましょう)
  • 演算子の前後はスペース 1 つ
  • 括弧やブラケットの前後に空白を入れない(foo(a[1], {b: 2}))
  • 行の長さは最大 79 文字(こちらもエディタで設定可能ですので変更しましょう)
  • コメントや docstring については 72 文字で折り返す
  • import 文は行を分ける(from ... import は同じ行に書いて OK)
  • 行末に余計な空白文字を残さない
  • 折り返された要素を縦に揃える
  • インラインコメントは控えめに
  • switch 文はない

命名規則

  • 実装よりも使い方を反映した名前にすべき
  • I、O は使わない。数字と区別がつかないから
  • モジュールの名前は小文字にする
  • クラス名は CapWords 方式(AbcDefg)
  • 型変数の名前は、最初が大文字で短く(Num)
  • 関数の名前は小文字のみ
  • インスタンスメソッドのはじめの引数の名前は self
  • クラスメソッドのはじめの引数の名前は cls
  • 変数は小文字、定数は大文字

自動コードレビュー

Python の文法チェックツールである flake 8 を活用しましょう。

インストール

pip install flake8

使い方は、ファイル名を指定するだけです。

fleak8 test.py

flake8

Python おすすめ本

スポンサード リンク

Comments

Leave a Comment

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください