ホームページ > バックエンド開発 > Python チュートリアル > Python のラムダ ステートメントを使用して匿名関数を宣言する方法を説明する例

Python のラムダ ステートメントを使用して匿名関数を宣言する方法を説明する例

高洛峰
リリース: 2017-01-23 14:36:40
オリジナル
1679 人が閲覧しました

いわゆる匿名関数は、関数を定義する必要がないことを意味します。関数名は必要ありません (多くの場合、名前が気になります)。例
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, &#39;test&#39;)
(10, &#39;test&#39;)
 
# 使用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, &#39;test&#39;)
(10, &#39;test&#39;)
ログイン後にコピー

読みやすさを損なうことなく、コードがより簡潔に見えませんか?

匿名関数を宣言するための Python のラムダ ステートメントの使用法を説明するその他の例については、PHP 中国語 Web サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート