Maison >développement back-end >Tutoriel Python >Nommer ou ne pas nommer : quand devez-vous attribuer des noms aux Lambdas en Python ?
Devriez-vous nommer des Lambdas en Python ?
Les expressions Lambda offrent un moyen concis et pratique de définir des fonctions anonymes en Python. Cependant, il est souvent tentant d'attribuer des noms aux lambdas dans les fonctions pour la réutilisation du code et des fonctionnalités spécifiques.
Critique de la dénomination des lambdas
Bien que cette pratique puisse sembler pratique, elle est généralement considéré comme non-Pythonic et va à l'encontre de la recommandation de PEP8. Comme le dit PEP8 :
"Utilisez toujours une instruction def au lieu d'une instruction d'affectation qui lie une expression lambda directement à un identifiant."
La justification de cette recommandation est que définir un lambda comme un function :
Exemple
Considérez l'exemple de fonction fourni dans la question :
def fcn_operating_on_arrays(array0, array1): indexer = lambda a0, a1, idx: a0[idx] + a1[idx] # ... indexed = indexer(array0, array1, indices) # ...
Au lieu d'utiliser un lambda nommé, il est plus pythonique de définir un élément distinct, explicitement nommé function:
def index_array(a0, a1, idx): return a0[idx] + a1[idx] def fcn_operating_on_arrays(array0, array1): # ... indexed = index_array(array0, array1, indices) # ...
Conclusion
Bien qu'attribuer des noms aux lambdas puisse sembler utile dans certaines situations, cela n'est pas recommandé. Suivez plutôt le principe pythonique consistant à utiliser des définitions de fonctions explicites pour maintenir la clarté, la lisibilité et le respect des meilleures pratiques.
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!