ちゃちゃまるです。
ふと思ったので、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
はいらない