Comprendre les expressions d'affectation dans Python 3.8
Depuis Python 3.8, l'opérateur "morse" (:=) a introduit les expressions d'affectation dans le langage. Cette nouvelle fonctionnalité permet aux programmeurs d'attribuer des valeurs dans les compréhensions et les fonctions lambda, qui étaient auparavant limitées aux affectations régulières.
Raison d'être des expressions d'affectation
La principale motivation derrière les expressions d'affectation est de permettre des expressions d'affectation plus concises et code efficace dans les scénarios où les affectations traditionnelles ne sont pas prises en charge. Par exemple, les expressions d'affectation facilitent :
-
Acquisition de valeurs conditionnelles : les valeurs conditionnelles peuvent être obtenues de manière plus succincte, comme le démontre l'exemple de débogage interactif fourni dans la documentation Python.
-
Compréhensions de listes simplifiées : les compréhensions de listes complexes peuvent être simplifiées en attribuant des valeurs intermédiaires aux variables au sein de la compréhension, rendant le code plus lisible et gérable.
Syntaxe, sémantique, et Grammar
Les expressions d'affectation suivent une syntaxe spécifique : name := expr, où name est un identifiant et expr est toute expression Python valide. La valeur de l'expression d'affectation est la même que celle de l'expression expr, mais un effet secondaire supplémentaire attribue la valeur au nom de la cible.
Les expressions d'affectation diffèrent des instructions d'affectation classiques sur plusieurs aspects clés :
- Ce sont des expressions, pas des déclarations, et peuvent donc apparaître dans des contextes où les expressions sont attendues.
- Ils ont un ordre d'évaluation différent (de droite à gauche) et une priorité différente par rapport aux devoirs normaux.
- Ils ne prennent pas en charge les cibles multiples, les affectations à des noms non uniques, l'emballage/déballage itérable, les annotations de type en ligne ou les opérations d'affectation augmentées.
Raisons de l'introduction des expressions d'affectation
Malgré le retrait de la PEP 379, qui proposait un concept similaire, la PEP 572 a introduit les expressions d'affectation dans Python pour plusieurs raisons :
- Pour améliorer la lisibilité et la maintenabilité du code, en particulier au sein des compréhensions et lambdas.
- Pour activer le débogage interactif sans avoir besoin de refactorisation du code.
- Pour fournir un moyen plus efficace d'attribuer des valeurs conditionnelles et de simplifier la compréhension des listes.
- Pour aligner la syntaxe de Python avec d'autres langages de programmation modernes qui prennent en charge les expressions d'affectation.
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!