Pythonのlambda
関数は、小規模な匿名関数を一行で定義するための構文です。この記事では、lambda
関数を使って複数の引数を持つ関数を別の関数の引数として渡す方法について説明します。
まず、引数なしの関数を別の関数の引数として渡す基本的な例を見てみましょう。
# 引数なし関数
def print_type1():
print('print_type1を処理中・・・')
return '[print_type1]'
def print_com(func):
print('=== print_comを処理中・・・ ===')
rtn = func() # 利用する際、渡す関数には引数なし
print('{}を処理しました。 '.format(rtn))
print()
print_com(print_type1) # 問題なく動作します
しかし、引数のある関数をprint_com
に代入したいときがあります。その場合、以下のようにlambda
関数を使って引数なし関数に変更してから渡すことができます。
# 引数あり関数
def print_type2(day):
print('print_type2を処理中・・・')
print('day: {}'.format(str(day)))
return "print_type2"
day = 15
print_com(lambda: print_type2(day)) # lambdaで引数なし関数に変更してから、渡せば動作します
このように、lambda
関数を使うことで、引数の数が異なる関数を同一の関数の引数として渡すことが可能になります。
以上がPythonのlambda
関数と複数引数の基本的な活用方法です。この知識を活用して、より効率的なコードを書くことができます。