コードブロックとインデント
Pythonの特徴と言えば、インデントでコードブロックを表すと言うもの。でも、これがいいのか悪いのかわからないことがある。
コードを書いているときに、後からブロック全体に対して、条件文を付けたいときや、逆に消したい時に、ある文がどのコードブロックに属しているのかわからなくなることがある。例えば、
def loop(a, b): for x in range(a..b): print x print "End"
と言う時に、aとbの大小比較チェックを入れないといけない、となった場合、
def loop(a, b): if a < b: for x in range(a..b): print x print "End" # ありゃ、この文て、for文の中だっけ? 外だっけ?
てな場合。コードを読めばわかるんだけど、久しぶりに見るコードだと、どっちに属してたのか、Undoしないとわからないことがある。
これが、PerlとかRubyだったら、ブロックで囲まれてるんだから、いちいちコードを読まなくても、どこのコードブロックに属しているのかが一目瞭然なんだけど。この悩みはPythonには付きものなのか?