L'opérateur Walrus, également connu sous le nom d'opérateur d'affectation d'expression (:=
), a été introduit en Python 3.8. Son principal objectif est d'attribuer des valeurs aux variables dans le cadre d'une expression. C'est un ajout puissant et utile qui permet d'utiliser une valeur dans une expression et de l'affecter à une variable en une seule étape.
Prenons un exemple où vous lisez des lignes d'un fichier et que vous voulez arrêter dès que vous trouvez une ligne vide. Voici comment vous pourriez le faire sans l'opérateur Walrus :
while True:
line = file.readline()
if not line:
break
process(line)
Avec l'opérateur Walrus, cela se simplifie à :
while (line := file.readline()):
process(line)
Dans cet exemple, line := file.readline()
fait deux choses : il affecte le résultat de file.readline()
à line
, et le résultat de l'expression est le contenu de la nouvelle variable line
, ce qui est examiné par le while
. Si line
est vide (ce qui signifie que nous avons atteint la fin du fichier), le while
se termine.
L'opérateur Walrus permet d'écrire du code plus concis, mais il convient de l'utiliser avec prudence. Il peut rendre le code plus difficile à comprendre si vous n'êtes pas habitué à voir cet opérateur. Comme pour toute fonctionnalité de langage, il doit être utilisé à bon escient.
Voici une liste de recommandations pour l'utilisation de l'opérateur Walrus :
À la fin, le but principal de l'opérateur Walrus est d'améliorer la lisibilité du code en réduisant la redondance, et non de rendre le code plus complexe. Alors, utilisez-le de manière judicieuse !