Pythonのlambda文で匿名関数を宣言する使い方を例に挙げて説明します
2578 ワード
匿名関数とは、関数を定義する必要がなく、式のように使用し、関数名を必要としない(多くの場合名前が困っている)、いくつかの簡単な関数を単純化することです.例を挙げると、2つの整数を加算する関数が必要です.通常はこのように定義されています.
必要な機能はよく完成しましたが、文字列に数値を加算する関数が必要です.
再び私の需要を完成しましたが、私は突然2つの整数を減らす必要があります.除去する機能はこのように関数をずっと書かなければなりませんが、lambda匿名関数を使って直接使用することができます.
操作を簡素化することで関数をより簡単にすることができますが、メンテナンス性が悪く、機能が複雑である必要がある場合に使用を推奨しないという欠点があります.
Lambda文の目的は、パフォーマンスのため、呼び出し時に関数のスタック割り当てを迂回することです.構文は次のとおりです.
次に、lambda文の使用方法(パラメータなし)を例に挙げて説明します.
Python匿名関数lambda例(パラメータなし)Python
次に、パラメータ付きの例を挙げます.
Python匿名関数lambda例(パラメータを含む)Python
コードがより簡潔で、可読性を失わないように見えますか.
def add(x, y):
return x + y
必要な機能はよく完成しましたが、文字列に数値を加算する関数が必要です.
def addstr(x, y):
return x + str(y)
再び私の需要を完成しましたが、私は突然2つの整数を減らす必要があります.除去する機能はこのように関数をずっと書かなければなりませんが、lambda匿名関数を使って直接使用することができます.
#
f = lambda x, y: x + y
f_str = lambda x, y: x + str(y)
操作を簡素化することで関数をより簡単にすることができますが、メンテナンス性が悪く、機能が複雑である必要がある場合に使用を推奨しないという欠点があります.
Lambda文の目的は、パフォーマンスのため、呼び出し時に関数のスタック割り当てを迂回することです.構文は次のとおりです.
lambda [arg1[, arg2, ... argN]]: expression
次に、lambda文の使用方法(パラメータなし)を例に挙げて説明します.
Python匿名関数lambda例(パラメータなし)Python
# def
def true():
return True
# lambda
>>> lambda :True
at 0x0000000001E42518>
# lambda ,
>>> true = lambda :True
>>> true()
True
# def
def true():
return True
# lambda
>>> lambda :True
at 0x0000000001E42518>
# lambda ,
>>> true = lambda :True
>>> true()
True
次に、パラメータ付きの例を挙げます.
Python匿名関数lambda例(パラメータを含む)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')
コードがより簡潔で、可読性を失わないように見えますか.