Énumération en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Enum en Python à l’aide du module enum
  2. Implémenter Enum en Python à l’aide d’une syntaxe de classe régulière
Énumération en Python

Dans ce tutoriel, nous examinerons différentes méthodes d’utilisation ou d’implémentation de enum en Python. L’enum ou énumération est un type spécial de classe représentant un ensemble de constantes nommées de type numérique. Chaque constante nommée du type enum a sa propre valeur entière, qui dépend de la position de la constante nommée de l’ensemble.

Le type enum est utilisé pour attribuer les noms des constantes à l’ensemble des valeurs entières dans de nombreux langages de programmation comme C#, Java, Go, C et C++, etc. Nous pouvons implémenter et utiliser le type d’énumération en Python en utilisant les méthodes qui sont expliquées ci-dessous.

Enum en Python à l’aide du module enum

Le module enum de Python a quatre classes qui sont Enum, IntEnum, Flag et IntFlag, pour plus de détails sur le module et les classes, ce lien peut être visité.

Dans la classe Enum, la valeur de chaque constante de nom est un entier par défaut, mais on peut aussi passer des types de données comme string ou float, etc. Les valeurs des constantes de nom de la classe IntEnum, comme son nom l’indique, peuvent être uniquement des nombres entiers.

Nous pouvons créer et utiliser l’énumération en Python en utilisant les classes Enum et IntEnum. Les exemples de codes ci-dessous montrent comment utiliser ces classes pour implémenter différents types d’énumérateurs en Python.

Énumérateur simple:

from enum import Enum

Names = Enum("Names", ["Waiz", "Tom", "Sara", "Lee"])

On peut utiliser l’itérateur de la paire (nom, valeur) pour sauvegarder des valeurs spécifiques avec chaque nom, représentant id ou marques, etc., des constantes de nom. On peut accéder à la valeur et au nom de la constante de nom en utilisant Enum.nameconstant.value pour accéder aux valeurs et Enum.nameconstant.name pour accéder aux noms.

Nous pouvons le faire en Python en utilisant l’exemple de code ci-dessous.

from enum import Enum

Names = Enum("Names", [("Waiz", 8), ("Tom", 5), ("Sara", 7), ("Lee", 6)])

print(Names.Sara.value)
print(Names.Waiz.name)

Production:

7
Waiz

Une autre façon de créer un énumérateur consiste à utiliser la syntaxe de classe, puis à passer le Enum ou IntEnum comme indiqué dans l’exemple de code ci-dessous:

from enum import IntEnum


class Student(IntEnum):
    Waiz = 1
    Ali = 2
    John = 3
    Lee = 4


print(Student.Lee.value)

Production:

4

Implémenter Enum en Python à l’aide d’une syntaxe de classe régulière

Dans les versions Python antérieures à 2.4, le module Enum n’est pas disponible, dans ce cas, nous pouvons implémenter notre propre class de l’énumérateur Enum en utilisant la syntaxe de classe.

Nous pouvons implémenter la classe d’énumérateur simple avec les valeurs par défaut à partir de 1 comme dans la classe Enum du module enum, comme illustré dans l’exemple de code ci-dessous:

class Zoo:
    Lion, Tiger, Cheetah, Leopard = range(1, 5)


print Zoo.Lion

Production:

1