Maison > Article > développement back-end > Un exemple pour expliquer l'utilisation de l'instruction lambda de Python pour déclarer des fonctions anonymes
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]]: expressionL'exemple suivant illustre comment utiliser l'instruction lambda (sans paramètres).
# 使用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() TrueVoici 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, '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')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 !