Syntaxe
Paramètres
| Nom |
Description |
| corpsdefonction |
Ce paramètre permet d'indiquer le corps de la fonction. |
Description
Ce mot réservé permet d'écrire une fonction simpliste ne nécessitant qu'une seule ligne pour son écriture comme la fonction du même nom en langage LISP ou «DEF FN» en langage Basic.
Remarques
- Le mot clef lambda permet de créer des fonctions anonymes, c'est-à-dire sans nom : Ces fonctions sont souvent utilisées pour des opérations simples
et temporaires, comme dans des expressions ou des appels à des fonctions comme map, filter, ou
sorted. Elles ne contiennent qu'une seule expression, étant automatiquement retournée.
- Contrairement à une fonction définie avec def, une fonction lambda ne peut contenir qu'une seule instruction : Elle ne peut pas inclure de blocs
complexes comme des conditions if, des boucles for, ou plusieurs instructions séparées. Cela la rend concise mais aussi limitée en fonctionnalités.
- Les lambda sont couramment utilisées comme fonctions de rappel (callback) : Par exemple, dans une interface graphique ou dans des fonctions attendant une
action à exécuter, lambda permet d'éviter de définir une fonction complète. Cela rend le code plus compact et parfois plus lisible, selon le contexte.
- Les lambda sont souvent utilisées avec des fonctions comme sorted, map, filter et reduce : Par exemple, sorted(liste,
key=lambda x: x[1]) trie une liste en fonction du deuxième élément de chaque sous-liste ou tuple. Elles sont ainsi un outil puissant pour manipuler des données
fonctionnellement.
- Les lambda peuvent capturer des variables de l'environnement dans lequel elles sont définies : Cela signifie qu'elles ont accès aux variables de
leur portée extérieure, ce qui les rend très utiles dans des constructions comme les fermetures (closures). Néanmoins, cette capture est parfois source d'erreurs subtiles
si on ne comprend pas bien l'environnement lexical.
- Une fonction lambda peut être assignée à une variable pour être réutilisée : Exemple : f = lambda x: x + 1 est équivalent à définir une fonction def f(x):
return x + 1. Cela permet de garder la simplicité syntaxique tout en gardant la fonction disponible pour plusieurs appels.
- Malgré sa commodité, l'usage excessif de lambda peut nuire à la lisibilité : Lorsqu'une expression devient trop complexe, il est préférable d'utiliser une
fonction classique avec def pour plus de clarté. La simplicité du code doit toujours primer sur le minimalisme syntaxique.
- En Python, les fonctions lambda sont techniquement des objets de type function : Cela signifie qu'elles peuvent être passées comme
arguments, retournées par d'autres fonctions, ou stockées dans des structures de données. Elles s'intègrent donc parfaitement dans le paradigme fonctionnel de Python.
Dernière mise à jour : Mercredi, le 16 mai 2018