Que sont les expressions d'affectation et comment fonctionnent-elles en Python ?

Susan Sarandon
Libérer: 2024-10-30 21:42:30
original
180 Les gens l'ont consulté

What are Assignment Expressions and How Do They Work in Python?

Expressions d'affectation en Python : l'opérateur « morse » (=:)

Introduites dans Python 3.8, les expressions d'affectation utilisant l'opérateur « morse » (:=) fournissent une amélioration significative du langage, permettant des affectations au sein des compréhensions et des lambdas.

Syntaxe et sémantique

Une expression d'affectation est une expression nommée de la forme nom := expr, où nom est un identifiant et expr est toute expression valide. L'expression est évaluée à la valeur de expr, tout en attribuant simultanément cette valeur à name.

Raison d'être de l'introduction

La principale motivation pour l'ajout d'expressions d'affectation était de :

  • Autoriser les affectations dans des contextes où les affectations traditionnelles étaient interdites, telles que les compréhensions de listes et les lambdas.
  • Améliorez le débogage interactif en facilitant l'affectation facile des valeurs.

Exemples d'utilisation

a) Obtention de valeurs conditionnelles

Au lieu de :

<code class="python">command = input("> ")
while command != "quit":
    print("You entered:", command)
    command = input("> ")</code>
Copier après la connexion

Les expressions d'affectation permettent :

<code class="python">while (command := input("> ")) != "quit":
    print("You entered:", command)</code>
Copier après la connexion

b) Simplifier les compréhensions de listes

Exemple :

<code class="python">[(lambda y: [y, x/y])(x+1) for x in range(5)]</code>
Copier après la connexion

Peut être simplifié en :

<code class="python">[[y := x+1, x/y] for x in range(5)]</code>
Copier après la connexion

Différences clés par rapport aux affectations régulières

Les expressions d'affectation diffèrent des affectations régulières affectations sous plusieurs aspects :

  • Ils sont évalués de droite à gauche.
  • Ils ont une priorité différente de celle des virgules.
  • Ils ne prennent pas en charge plusieurs cibles, les affectations à des noms non uniques ou l'emballage/déballage itérable.
  • Les annotations de type en ligne et les affectations augmentées ne sont pas non plus prises en charge.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!