Python PEP8 #3
株式会社リュディアです。Python のコーディングスタイルガイドの1つ PEP8 について引き続きまとめていきます。前回までの PEP8 のまとめへのリンクは以下を参考にしてください。
PEP8 の日本語訳へのリンクはこちらです。
今回もいろいろと意見がありそうな空白の入れ方についてです。プログラミング言語によっても慣習みたいなものがあったり、人それぞれな部分も多いと思います。ではさっそく見ていきましょう。
括弧前後の空白について
PEP8のドキュメント中で例としてあげられているのは以下です。
# 正しい:
spam(ham[1], {eggs: 2})
# 間違い:
spam( ham[ 1 ], { eggs: 2 } )
# 正しい:
foo = (0,)
# 間違い:
bar = (0, )
私は違和感を感じませんでしたが皆さんはどうでしょうか? 例えば JavaScript を使っている方は ham[1] ではなく ham[ 1 ] と書かれる方が多いのではないでしょうか。
カンマ、セミコロン、コロンの前後の空白
PEP8のドキュメント中で例としてあげられているのは以下です。
# 正しい:
if x == 4: print x, y; x, y = y, x
# 間違い:
if x == 4 : print x , y ; x , y = y , x
カンマ、セミコロン、コロンの直前には空白を入れず直後に空白を入れるということです。
関数呼び出し箇所の空白
関数名と括弧の間にはスペースを入れないという例があげられています。
# 正しい:
spam(1)
# 間違い:
spam (1)
演算子の場所を揃えるための空白
これは処理されている方が多いのではないでしょうか?私も昔はしていましたが今はしていません。空白で場所を調整するのは禁止です。
# 正しい:
x = 1
y = 2
long_variable = 3
# 間違い:
x = 1
y = 2
long_variable = 3
二項演算子周辺の空白
優先順位が違う演算子を扱う場合、優先順位が一番低い演算子の両側にスペースを入れることも可能ですが、2 つ以上の空白を絶対に使わないでください。また空白を入れる場合、2項演算子の両側に常に同じ数の空白文字を入れてます。
# 正しい:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
# 間違い:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
これは、私も対応しています。慣れの問題もあるかもしれませんが私は読みやすいコードになると考えています。
今回は空白の扱いについてまとめてみました。社内やプロジェクト単位で既に規約がある場合はそれらに従うべきですし、無い場合は PEP8 に従うと他の方にも読みやすいコードになりますので意識してみてください。
今回で PEP8 についてのまとめは終了です。他にもいろいろなガイドラインがあるのですが私どもリュディアで意識していることだけまとめました。興味のある方は原文を読んでください。
では、ごきげんよう。