auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Pythonの関数はreturnで返すべきか

auです。

Pythonの関数は、returnをしなくてはいけない場合と、しなくてもいい場合があると思います。

printをするだけとかなら、returnはなくてもいいですよね。

僕は、C言語のように「reutrn 0」で正常終了のようにしていたのですが、先輩エンジニアに指摘されたので調べてみました。

結論

初めに結論から言うと、returnを使うなら全ての分岐で使い、使わなくてもいいなら1回も使わないと言うことです。

これは、Pythonの公式でも言われています。

return文は一貫した書き方をしましょう。関数の中の全てのreturn文は式を返すか、全く何も返さないかのどちらかにすべきです。式を返しているreturn文が関数の中にある場合、値を何も返さないreturn文は 明示的に return None と書くべきですし、(到達可能であれば)return文を関数の最後に明示的に置くべきです。

def foo(x):
    if x >= 0:
        return math.sqrt(x)
    else:
        return None

公式にある例だと、if分岐するもの全てreturnをしています。

何も返す必要がないelseの箇所も、「return None」と記述しています。

ただの「return」だけでなく、「return None」まで書くべきらしいので、しっかりと書きましょう。