🐬
ネストを深くしないための工夫 ~綺麗なコードを書くために~
はじめに
Pythonにおいて、ネストが深くなるとコードが読みづらくなり、またバグが生じやすくなる可能性もあります(forやif文を多用するとすぐに深くなってしまう)。以下にネストを深くしないための工夫点を纏めてみました。
ネストを深くしないためにすること
早期リターン
関数内で条件によって処理を分岐する場合、if
文のネストが深くなることがあります。このような場合には、条件を満たさないときにすぐにリターンする「早期リターン」を用いると、ネストを浅く保つことができます。
例えば次のようなコード:
def do_something(x):
if x > 0:
# do something
pass
else:
return
早期リターンを用いて次のように書き換えられます:
def do_something(x):
if x <= 0:
return
# do something
pass
リスト内包表記
リスト内包表記は、for
ループを用いてリストを作成する際に、ネストを浅く保つための便利な機能です。
例えば次のようなコード:
result = []
for i in range(10):
if i % 2 == 0:
result.append(i)
リスト内包表記を用いて次のように書き換えられます:
result = [i for i in range(10) if i % 2 == 0]
関数・メソッドの分割
複雑な処理は複数の関数またはメソッドに分割することも、ネストを浅く保つための一つの方法です。各関数・メソッドが一つの明確な目的を持つように設計すると、コード全体の見通しがよくなります。
以上のような工夫により、Pythonのコードの可読性を高め、バグを防ぐことができます。
Discussion