Maison  >  Article  >  développement back-end  >  Que sont les expressions d'affectation et pourquoi ont-elles été introduites dans Python 3.8 ?

Que sont les expressions d'affectation et pourquoi ont-elles été introduites dans Python 3.8 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 11:22:02631parcourir

What are Assignment Expressions and Why Were They Introduced to Python 3.8?

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!

Déclaration:
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