Maison > développement back-end > Tutoriel Python > Qu'est-ce qu'une fonction anonyme ? Quelles sont les utilisations des fonctions anonymes Python ?

Qu'est-ce qu'une fonction anonyme ? Quelles sont les utilisations des fonctions anonymes Python ?

Tomorin
Libérer: 2018-08-17 17:54:45
original
7029 Les gens l'ont consulté

Lorsque nous transmettons une fonction, parfois nous n'avons pas besoin de définir explicitement la fonction. Il est plus pratique de transmettre directement la fonction anonyme.

En Python, la prise en charge des fonctions anonymes est limitée. Toujours en prenant comme exemple la fonction map(), lors du calcul de f(x)=x2, en plus de définir une fonction de f(x), vous pouvez aussi passer directement une fonction anonyme :

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Copier après la connexion

Vous pouvez voir par comparaison Out, la fonction anonyme lambda x : x * x est en fait :

def f(x):
    return x * x
Copier après la connexion

Le mot-clé lambda représente la fonction anonyme, et le x avant les deux points représente le paramètre de la fonction.

Les fonctions anonymes ont une limitation, c'est-à-dire qu'elles ne peuvent avoir qu'une seule expression. Il n'est pas nécessaire d'écrire return La valeur de retour est le résultat de l'expression.

Il y a un avantage à utiliser des fonctions anonymes, car la fonction n'a pas de nom, vous n'avez donc pas à vous soucier des conflits de noms de fonction. De plus, la fonction anonyme est également un objet fonction. Vous pouvez également affecter la fonction anonyme à une variable puis utiliser la variable pour appeler la fonction :

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)25
Copier après la connexion

De même, vous pouvez également renvoyer la fonction anonyme. comme valeur de retour, par exemple :

def build(x, y):
    return lambda: x * x + y * y
Copier après la connexion

Encapsule les détails pour améliorer la sécurité et la contrôlabilité. Il est souvent utilisé en dehors des fonctions dans la portée globale, limitant ainsi l'ajout d'un trop grand nombre de variables et de fonctions à la portée globale. .
L'utilisation d'une portée au niveau du bloc dans la portée globale peut réduire le problème des fermetures occupant la mémoire, car il n'y a aucune référence à la fonction anonyme et sa chaîne de portée peut être détruite immédiatement tant que la fonction est exécutée.

Portée Mimic au niveau du bloc (privée) :

function box(){
    for(var i=0;i<5;i++){  //块级作用域(js无)
    }   
     var i //即便重新声明,也不会影响之前的值
    alert(i);//5
 }
box();
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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