Pythonを勉強しよう! 関数の戻り値について
Python初心者の備忘録.....
今回は、関数の戻り値についてです。
戻り値とは
戻り値は「関数」から返ってくる値をいいます。自分はリターン値ともいっています。
関数の作り方次第ですが、戻り値があるとき1つの場合(C言語は1つまで)や、複数の場合が考えられます。
戻り値には、数値や文字列、場合によってはデータアドレス情報など返すことが可能です。
return文
戻り値を返す「return」文を使用します。 この「return」文は、関数で処理終了するときに必要な文になります。下記の一覧のような使い方ができます。
- 関数内で複数の「return」文があってもよい。
- 戻り値を変数名、直接値(ex : 100 , 200 , "OK"など)、bool型でTrue、Falseでもよい。
- 「return」文で計算してもよい。
下記のサンプルコードでいうと、関数は「modoriTest」です。
- 関数は処理を1つにまとめたもの
- 関数は「def 関数名」の形で記述する
それでは戻り値の記述方法をみていきましょう。
戻り値が1つのとき
def modoriTest(): addValue = 100 + 200 return addValue returnValue = modoriTest() print(returnValue) # 300
説明をすると、「def modoriTest() 」は関数。
100+200の加算した値(addValueに結果が入っている)を、「return」文で返しています。
この「def modoriTest() 」は関数宣言しており、誰かが呼ばないと起動しない関数です。
ここでは5行目の「returnValue = modoriTest()」でmodoriTest()の結果返しを、左辺のretrunValueへ保存し、「print」文で標準出力しています。
戻り値が2つのとき
def modoriTest(): addValue = 100 + 200 subValue = 200 - 100 return addValue,subValue retValueAdd,retValueSub= modoriTest() print(retValueAdd) print(retValueSub) # 300 # 100
説明すると4行目の「return」文で二つの変数を「 , 」(カンマ)で区切って返しています。
6行目でその結果を「retValueAdd」、「retValueSub」へ保存し、「print」文で標準出力しています。
使い方は難しくなく、返す順番で返却することで期待した戻り値を返却、取得することができます。
戻り値が2つのうち1つ使わないとき
関数からの戻り値のうち1つは使用しないときは、戻り値を取得する箇所に「 _ 」(アンダースコア)を記述します。
この用途は詳しくわかっていませんが、使って欲しくない変数を明示的に示すことで、誤った参照を防ぐことも一つの用途に挙げられます。
- 「 _ 」はアンダースコアが正式名称。アンダーバーは和製英語らしい。
def modoriTest(): addValue = 100 + 200 subValue = 200 - 100 return addValue,subValue retValueAdd , _= modoriTest() print(retValueAdd) # 300
6行目で戻り値の2つ目をアンダースコアで変数に入れず、使用しないことを明示しています。
戻り値を計算して返すとき
def modoriTest(): return 100+200,200-100 retValueAdd,retValueSub= modoriTest() print(retValueAdd) print(retValueSub) # 300 # 100
2行目の「return」文で計算後に戻り値を返すことをしています。