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

高洛峰
Libérer: 2017-01-23 14:36:40
original
1724 Les gens l'ont consulté

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
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion
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
Copier après la connexion

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;)
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal