Python: 関数の戻り値
関数の戻り値
関数が返す情報(値)を戻り値といい、 Pythonではreturn文を使って戻り値を返します。ここでは関数の戻り値の記述方法について説明します。
戻り値がない場合
戻り値がない場合は次のように記述します。
下の関数「func」は受け取った引数をprint()で表示するだけで、
戻り値はありません。
# 関数定義 ここから def func(s): print(s) return # 関数定義 ここまで # 関数を呼び出す func("hello") # hello
戻り値がない場合は、return文はなくても構いません。
ブロックの終了とともに関数を抜け出すからです。
return文を書いておくと、「関数の終了場所」と
「戻り値がないこと」が明確にわかるというメリットがあります。
戻り値がある場合
次は戻り値がある場合の記述です。
下の関数「plus」は引数を2つ受け取り、
2つの引数を足した数値を戻り値として返します。
# 関数定義 ここから def plus(x, y): return x + y # 関数定義 ここまで # 関数を呼び出す n = plus(1, 7) print(n) # 8
戻り値がある場合は return の後に戻り値を指定します。
呼び出し側は、変数「n」に戻り値を代入しています。
戻り値が複数ある場合
Pythonでは戻り値を複数返すことができます。
下の関数「double」は引数を2つ受け取り、
それぞれを2倍した値を返します。(戻り値が2つ)
# 関数定義 ここから def double(x, y): # それぞれ2倍する x = x * 2 y = y * 2 return x, y # 関数定義 ここまで # 関数を呼び出す n1, n2 = double(3, 6) print(n1, n2) # 6 12
戻り値が複数の場合は return の後にカンマ区切りで戻り値を指定します。 この複数の値はタプルなので次のようにも記述できます。
return (x, y)
戻り値を受け取る側では、 「n1, n2 = double(3, 6)」とタプルをアンパック(展開)して受け取ります。 もしアンパック(展開)しない場合は次のようになります。
n = double(3, 6) print(n) # (6, 12)