Pythonの無名関数のサンプルです。(確認環境:Python 3)
目次
サンプル | 無名関数 |
コールバック関数に無名関数を使用する |
無名関数
変数 = lambda 引数 : 戻り値 |
- 無名関数は、キーワードのlambda(ラムダ)を使用します。
- コロンの左側が引数で、右側が戻り値です。
- 無名関数なので関数名がありません。
- Pythonの公式ドキュメントのラムダ (lambda)のリンクです。
https://docs.python.org/ja/3/reference/expressions.html?#lambda
関数から無名関数にするサンプルです。
1.以下は関数です。
# coding: utf-8
def test1(a):
return a + "です"
print(test1("赤")) # 赤です
3,4行目は、test1という関数です。引数を受け取りreturnで値を返します。
2.上記の関数を無名関数にします。
# coding: utf-8
b = lambda a : a + "です"
print(b("赤")) # 赤です
3行目は、無名関数です。関数名がありません。lambdaの右が引数で、コロンの右側が戻り値です。
5行目は、3行目の関数を実行しています。引数として文字列"赤"を渡しています。
コールバック関数に無名関数を使用する
関数の引数に無名関数をセットするサンプルです。
コールバック関数とは、関数の引数に指定される関数のことです。
# coding: utf-8
def test1(x,y):
z = y(2,3)
return x + "の" + str(z)
print(test1("ダイヤ",lambda a,b : a * b)) # ダイヤの6
3~5行目は、test1という関数です。
7行目のtest1関数を呼び出す2つめの引数(lambda以降)は無名関数です。3行目の関数の引数yに無名関数を渡しています。
4行目は、渡された無名関数を実行し値を変数zにセットしています。
5行目は、7行目の呼び出し元に値を返しています。
7行目は、3行目のtest1関数の実行結果でダイヤの6と表示されます。
関連の記事