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)
Python