Maîtrisez l'opérateur Python Walrus et débloquez de nouvelles compétences en programmation !

王林
Libérer: 2023-04-25 17:55:08
avant
1064 Les gens l'ont consulté

Bonjour à tous, je m'appelle Xianhuan, une vieille connaissance à vous !

Le morse est le plus grand mammifère, et certains le qualifient de résident « indigène » de l'hémisphère nord. Il a une tête ronde, une bouche courte et large, un nez épais et les canines supérieures forment des défenses de 40 à 90 cm de long, pesant chacune plus de 4 kg. Les morses mâles peuvent atteindre 4 mètres de long et peser 2 tonnes. Les morses aiment vivre en groupe, des milliers d’entre eux étant regroupés.

Les yeux des morses plissent comme un vieil homme en manque de vitalité. Ils adorent dormir et passent la majeure partie de leur vie allongés sur la glace. Ils peuvent aussi dormir dans l'eau, ce qui est vraiment étonnant.

En tant qu'agriculteur roller de 996, j'envie beaucoup leur vie et j'ai vraiment envie de dormir à plat comme eux.

Bon, passons aux choses sérieuses, continuons à rouler ! Aujourd'hui, je vous présente un opérateur nommé d'après un morse - l'opérateur morse.

L'opérateur Python morse a été proposé dans PEP 572 et incorporé et publié dans Python 3.8.

Le nom anglais original de l'opérateur morse est Assignment Expressions, qui sont des expressions d'affectation. Une expression de morse se compose d'un : et d'un =, à savoir := . Nous l’appelons habituellement l’opérateur de morse car il ressemble à un morse tourné à 90°. L'auteur est très imaginatif et sait relier tout cela !

Grammar

Le format de syntaxe de l'opérateur morse est :

(variable_name := expression)
Copier après la connexion

Il s'agit d'un nouvel opérateur d'affectation, similaire à notre = commun, un nom de variable est suivi d'une expression.

Utilisation

pour les expressions conditionnelles if-else

Écriture normale :

a = 5
if a > 1:
print('do sth!')
Copier après la connexion

Écriture améliorée :

if a := 5 > 1:
print('do sth!')
Copier après la connexion

Utilisée pour la boucle while

Écriture normale :

n = 3
while n:
print('do sth!')
n -= 1
Copier après la connexion

Écriture améliorée :

n = 3
while (n := n - 1) + 1: 
print('do sth!')
Copier après la connexion

La raison de en ajoutant 1 voici car n est décrémenté de 1 avant d'exécuter la sortie.

Lire des fichiers

Écriture régulière :

fp = open("test.txt", "r")
while True:
line = fp.readline()
if not line:
break
print(line.strip())
fp.close()
Copier après la connexion

Écriture améliorée :

fp = open("test.txt", "r")
while line := fp.readline():
print(line.strip())
Copier après la connexion

L'utilisation de l'opérateur morse dans des scénarios appropriés peut réduire la complexité du programme, simplifier le code et même améliorer les performances du programme.

Scénarios non applicables

Bien que l'opérateur morse soit facile à utiliser, il n'est pas applicable dans tous les scénarios et il a toujours ses limites.

Affectation de variable

Nous ne pouvons pas utiliser l'opérateur = et l'opérateur := ensemble. L'opérateur morse ne peut faire partie que de l'expression :

a = 5 # Valid 
a := 5 # InValid 
empty_list = [] # Valid 
empty_list := [] # InValid
Copier après la connexion

Si vous écrivez ainsi, l'éditeur affichera directement une erreur.

Addition et soustraction

a += 5 # Valid
a :+=5 # Invalid
Copier après la connexion

Expressions d'affectation dans les fonctions Lambda

(lambda: a:= 5) # Invalid
lambda: (a := 5) # Valid, but not useful
(var := lambda: 5) # Valid
Copier après la connexion

Controverse

Mots clés

L'opérateur morse utilise := Ce mot-clé n'est pas apprécié par la plupart des développeurs. Ce mot-clé est similaire à Ce avec quoi nous entrons habituellement en contact est. différent, et le créateur a une approche unique.

Je n'aime pas beaucoup ça, mais je respecte les règles du créateur. Après tout, ils vous ont apporté des opérateurs tellement pratiques.

Nom de l'opérateur

Certains développeurs pensent que le nom « opérateur morse » est trop abstrait et ne peut pas exprimer clairement la signification de cet opérateur. Près de 100 % des gens n'y penseront pas lorsqu'ils verront ce nom pour la première fois. .

Frère Huan pensait que puisqu'il n'y a pas de méthode de dénomination définie, il est compréhensible que l'auteur choisisse un nom significatif.

Résumé

Désormais, nous avons une autre arme conventionnelle dans notre arsenal. N'oubliez pas de l'utiliser lors des combats (impliquant d'autres personnes). Cela améliorera les performances du programme et la simplicité du code.

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!

Étiquettes associées:
source:51cto.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal