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

Patricia Arquette
Libérer: 2024-11-01 13:05:02
original
124 Les gens l'ont consulté

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

Expressions d'affectation avec l'opérateur "Walrus" : une fonctionnalité Python 3.8

Python 3.8 a introduit un nouveau concept connu sous le nom d'"expressions d'affectation" utilisant l'opérateur ":=" , communément appelé l'opérateur « morse ».

Syntaxe, sémantique et grammaire

Une expression d'affectation prend la forme nom := expr, où expr est une expression Python valide et le nom est un identifiant. La sémantique est que la valeur de l'expression est attribuée au nom, et la valeur de l'expression d'affectation est également la même que celle de l'expression.

Rationale

La motivation principale car l'introduction d'expressions d'affectation consistait à activer les affectations dans des constructions telles que les compréhensions de liste et les fonctions lambda qui les interdisaient auparavant. Il facilite également le débogage interactif sans avoir besoin de refactoriser le code.

Cas d'utilisation

a) Obtention de valeurs conditionnelles :

  • Avant :

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

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

b) Simplification des compréhensions de listes  :

  • Avant :

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

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

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

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

  • Ce sont des expressions plutôt que des instructions.
  • Elles ont une priorité de droite à gauche .
  • Ils diffèrent en termes de priorité autour des virgules.
  • 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 affectations augmentées.

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!