3:関数名から想像できる型の戻り値を返す

変数名、関数名から「想像できること」はとても大切です。 特にプログラミングにおいては「型」が想像できることがとても重要です。 特にPythonは 動的型付け言語 なので、関数がどんな型で戻り値を返すかを制限できません。

次の関数にはどんな問題があるか考えてみましょう。

具体的な失敗

def is_valid(name):
    if name.endswith(".txt"):
        return name[:-4] + ".md"
    return name

この is_valid 関数の問題は、関数名から想像できる「戻り値の型」と実装が違うことです。 is_has_ で始まる関数名の場合は bool が返る関数のように思えてしまいます。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください

ベストプラクティス

is_has_ で始まる変数名、関数名の場合はboolを扱うようにします。

def is_valid(name):
    return not name.endswith(".txt")

これで if is_valid(): のようにif文で正しく扱えます。 大切なのは関数名から期待される動作や戻り値の型と、実装を一致させることです。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください