Sommaire

Énumération

Les énumérations sont le meilleur moyen de représenter un ensemble fini d’éléments, comme les jours de la semaine ou les couleurs de l’arc-en-ciel. Puisque Python ne propose pas nativement de moyen pour déclarer une énumération, il existe plusieurs solutions. L’une des plus simples consiste à créer une classe et à déclarer des attributs de classe en leur assignant des entiers de valeurs différentes :

class Couleur:  
    ROUGE = 1  
    VERT = 2  
    BLEU = 3  
  
tomate = Couleur.ROUGE  
salade = Couleur.VERT

Cette méthode a tout de même quelques inconvénients. D’une part, la valeur d’énumération n’est pas proprement typée : il s’agit juste d’un entier :

print(tomate)  
>>> 1  
print(salade)  
>>> 2

Cela peut poser des difficultés de débogage (que représente la valeur 1 ? Est-ce réellement un entier ou une énumération ?). Cela peut également inciter à de mauvaises utilisations arithmétiques, alors qu’une énumération n’est clairement pas faite pour ça :

print(Couleur.ROUGE + Couleur.VERT == Couleur.BLEU)  
>>> True

D’autre part, les valeurs d’énumération étant des entiers publics, une erreur d’inattention ...