LoginSignup
55
56

More than 5 years have passed since last update.

Pythonでreturn、return None、return記述なし、の違い

Posted at

ちゃちゃまるです。

ふと思ったので、Pythonのreturnにちょっと調べてみました。

挙動上では違いはないのですが、どのreturnを使うべき流れか、というのはあるみたいです。

ただのreturn

returnは、ループを抜けるときに使います。

例えば、20個のリンゴの中に1つだけ黄金のリンゴがあって、それを見つけたい場合

for apple in apples:
    if "golden" in apple.color:
        print "I found it!"
        return

こうなります。黄金のリンゴは1つだけしかないので、見つかった時点でループから抜けて大丈夫です。こういう場合にただのreturnを使います。

return None

return Noneは、返した値が後々使われるときに使われます。

例えば、黄金のリンゴの値段を返したいとき

if is_golden(apple):
    return apple.price
else:
    return None

となります。黄金でないリンゴの場合値段情報はいらないので、Noneを返します。

return記述無し

返した値を後々使う必要がない場合、returnを書く必要はありません。

if is_golden(apple):
    print "It's a golden apple!"

この場合返す必要はない(返した値を再利用することがない)ため、return記述はいらないです。

まとめ

  • returnはループを抜けるとき
  • return Noneは返り値が再利用されるとき
  • 返り値が再利用されないときはreturnはいらない
55
56
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
56