À retenir
- Son symbole est
:=. - Il permet d'affecter une variable à l'intérieur d'une expression.
- Il aide à écrire un code plus compact et performant en évitant les doubles calculs.
L'opérateur morse est un symbole de programmation (:=) qui permet de donner une valeur à une variable tout en l'utilisant immédiatement dans un test ou un calcul. C'est comme si vous notiez un score sur un carnet (affectation) au moment même où vous l'annoncez à haute voix pour vérifier s'il est suffisant pour gagner (expression).
Étymologie
Traduction directe de l'anglais walrus operator. Son nom vient de la ressemblance visuelle du symbole := avec les yeux et les défenses d'un morse couché sur le côté. Il a été introduit officiellement dans le langage Python avec la version 3.8 en 2019.
Exemples d'usage
- Lire une ligne d'un fichier texte et vérifier simultanément qu'elle n'est pas vide avant de la traiter.
- Calculer la longueur d'une liste dans une condition
ifet réutiliser immédiatement cette longueur dans le bloc de code qui suit sans avoir à la recalculer.
Cas d'usage
On l'utilise principalement en développement Python pour raccourcir le code et éviter les répétitions inutiles (principe DRY - Don't Repeat Yourself). Il est particulièrement efficace dans les boucles while et les structures conditionnelles complexes.
Bonnes pratiques
Utilisez-le pour clarifier le code en supprimant les lignes redondantes, mais n'en abusez pas. Si une expression devient trop chargée ou difficile à lire d'un coup d'œil, il est préférable de rester sur une affectation classique avec le signe =.
Synonymes
Antonymes
Conseil
Si vous débutez, commencez par l'utiliser dans des boucles simples pour traiter des données provenant d'une fonction ou d'une saisie utilisateur. C'est là que son utilité est la plus évidente pour épurer votre code.
Questions fréquentes
Quelle est la différence avec le signe égal (=) ?
Le signe `=` est une instruction isolée pour créer une variable, alors que `:=` peut être utilisé au milieu d'une autre opération (comme un test `if`).
Est-ce disponible dans tous les langages ?
Non, c'est une fonctionnalité emblématique de Python 3.8+. D'autres langages utilisent des concepts proches, mais sous d'autres formes.