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