Maison  >  Article  >  développement back-end  >  Maîtrisez l'opérateur Python Walrus et débloquez de nouvelles compétences en programmation !

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

王林
王林avant
2023-04-25 17:55:081020parcourir

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)

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!')

Écriture améliorée :

if a := 5 > 1:
print('do sth!')

Utilisée pour la boucle while

Écriture normale :

n = 3
while n:
print('do sth!')
n -= 1

Écriture améliorée :

n = 3
while (n := n - 1) + 1: 
print('do sth!')

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()

Écriture améliorée :

fp = open("test.txt", "r")
while line := fp.readline():
print(line.strip())

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

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

Addition et soustraction

a += 5 # Valid
a :+=5 # Invalid

Expressions d'affectation dans les fonctions Lambda

(lambda: a:= 5) # Invalid
lambda: (a := 5) # Valid, but not useful
(var := lambda: 5) # Valid

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer