Opérateur morse

Définition, exemples et bonnes pratiques

À 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 if et 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

expression d'affectation walrus operator affectation nommée

Antonymes

affectation standard

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.