いわゆる匿名関数は、関数を定義する必要がないことを意味します。関数名は必要ありません (多くの場合、名前が気になります)。例
2 つの整数を加算する必要があります。関数は通常次のように定義されます
def add(x, y): return x + y
これで必要な関数は完成しましたが、今度は数値と文字列を加算する関数が必要です
def addstr(x, y): return x + str(y)
必要な作業は完了しましたが、突然 2 つの整数の減算と除算の関数が必要なので、関数を常に書き留める必要がありますが、ラムダ匿名関数を使用すると、直接使用できます
# 相加的实现 f = lambda x, y: x + y f_str = lambda x, y: x + str(y)
操作が簡素化され、関数は単純ですが、保守性が低いという欠点があります。複雑な関数が必要な場合には使用しないことをお勧めします
lambda [arg1[, arg2, ... argN]]: expression
次の例は、ラムダ ステートメント (パラメーターなし) の使用を示しています。
Python 匿名関数ラムダの例 (パラメーターなし) Python
# 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda :True <function <lambda> at 0x0000000001E42518> # 保留lambda对象到变量中,以便随时调用 >>> true = lambda :True >>> true() True # 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda :True <function <lambda> at 0x0000000001E42518> # 保留lambda对象到变量中,以便随时调用 >>> true = lambda :True >>> true() True
パラメーターを含む別の例を次に示します。
Python 匿名関数ラムダの例 (パラメーターを含む) Python
# 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也允许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *z: z # 调用lambda函数 >>> a = lambda x, y: x + y >>> a( 1, 3 ) 4 >>> b = lambda x, y = 2: x + y >>> b( 1 ) 3 >>> b( 1, 3 ) 4 >>> c = lambda *z: z >>> c( 10, 'test') (10, 'test') # 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也允许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *z: z # 调用lambda函数 >>> a = lambda x, y: x + y >>> a( 1, 3 ) 4 >>> b = lambda x, y = 2: x + y >>> b( 1 ) 3 >>> b( 1, 3 ) 4 >>> c = lambda *z: z >>> c( 10, 'test') (10, 'test')
読みやすさを損なうことなく、コードがより簡潔に見えませんか?
匿名関数を宣言するための Python のラムダ ステートメントの使用法を説明するその他の例については、PHP 中国語 Web サイトの関連記事に注目してください。