Maison >développement back-end >Tutoriel Python >Un exemple pour expliquer l'utilisation de l'instruction lambda de Python pour déclarer des fonctions anonymes

Un exemple pour expliquer l'utilisation de l'instruction lambda de Python pour déclarer des fonctions anonymes

高洛峰
高洛峰original
2017-01-23 14:36:401667parcourir

La fonction dite anonyme signifie qu'il n'y a pas besoin de définir une fonction, elle peut être utilisée comme une expression, et il n'y a pas besoin d'un nom de fonction (les noms me dérangent souvent). Certaines fonctions simples peuvent être simplifiées. . Par exemple
J'en ai besoin de deux. Une fonction qui ajoute des entiers est généralement définie comme ceci

def add(x, y):
  return x + y

Elle complète très bien la fonction dont j'ai besoin, mais maintenant j'ai besoin d'une fonction qui. ajoute des nombres et des chaînes

def addstr(x, y):
  return x + str(y)

Encore une fois, j'ai répondu à mes besoins, mais j'ai soudainement besoin de la fonction de soustraction et de division de deux entiers, donc la fonction doit être écrite tout le temps, mais en utilisant lambda anonyme les fonctions peuvent être utilisées directement

# 相加的实现
f = lambda x, y: x + y
 
f_str = lambda x, y: x + str(y)

simplifie l'opération et rend la fonction plus simple, mais présente l'inconvénient d'une mauvaise maintenabilité. Elle n'est pas recommandée lorsque des fonctions complexes sont requises

<.>
lambda [arg1[, arg2, ... argN]]: expression
L'exemple suivant illustre comment utiliser l'instruction lambda (sans paramètres).


Exemple lambda de fonction anonyme Python (sans paramètres) 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

Voici un autre exemple avec des paramètres.

Exemple lambda de fonction anonyme Python (y compris les paramètres) 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;)

Le code ne semble-t-il pas plus concis sans perdre en lisibilité ?

Pour plus d'exemples expliquant l'utilisation de l'instruction lambda de Python pour déclarer des fonctions anonymes, veuillez prêter attention au site Web PHP chinois pour les articles connexes !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn