\

PythonのLambda式は、無名関数(名前を持たない関数)を簡単に作成するためのシンタックスです。しかし、Lambda式は「文ではなくて式」なので、複数行は基本的にはできません。

しかし、戻り値を配列にすると、複数行の実行が可能になるようです。以下にその例を示します。

# 高階関数
def higher_order(func):
    return func()

higher_order(lambda: [print("aaaa"), print("bbbb")])
# 実行結果
# aaaa
# bbbb

このように、Lambda式で複数行を実行することが可能です。ただし、難しい処理はしないで、print(“”)のように簡単な処理に限定して利用した方がよいと思われます。

また、引数を持つ場合も同様にLambda式で表現することができます。

# 高階関数
def higher_order(func, a, b):
    return func(a, b)

aa = 1
bb = 10
(aa, bb) = higher_order(lambda x, y: [x + 1, y + x + 100], aa, bb)
print("aa = " + str(aa))
print("bb = " + str(bb))
# 実行結果
# aa = 2
# bb = 111

しかし、このような複数行を実行するLambda式はバグを発生させる可能性があるため、通常はコールバック関数を使って実装した方が良いとされています。

以上がPythonのLambda式で複数行を実行する方法についての説明です。この情報がPythonプログラミングに役立つことを願っています。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です