🐬

ネストを深くしないための工夫 ~綺麗なコードを書くために~

2023/06/20に公開

はじめに

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