Ceci est un texte traduit automatiquement qui peut contenir des erreurs !
Les enums (énumérations) sont un moyen de définir un type de données qui ne peut avoir qu’un ensemble limité de valeurs prédéfinies. Cela permet de faciliter la prévention des erreurs en garantissant qu’une variable ne peut avoir que des valeurs valides.
Les enums ne sont pas strictement utilisés pour la validation, mais ils nous aident à limiter les valeurs valides pour une variable, et peuvent donc contribuer à prévenir les erreurs.
Par exemple, si vous avez une classe qui représente une voiture, vous pouvez utiliser une Enum pour définir les couleurs que la voiture peut avoir :
from enum import Enum
class CarColor(Enum):
RED = "red"
BLUE = "blue"
GREEN = "green"
BLACK = "black"
WHITE = "white"
class Car:
def __init__(self, make: str, model: str, year: int, color: CarColor):
self.make = make
self.model = model
self.year = year
self.color = color
Pourquoi ?
Notre IDE offre une meilleure autocomplétion lorsque nous utilisons des enums, et nous évitons (rendons difficile) de définir des valeurs invalides. Si nous essayons d’assigner une couleur qui n’est pas définie dans CarColor, Python lèvera une erreur. Cela rend le code plus robuste et plus facile à maintenir. Moins il y a de possibilités d’erreurs, meilleure est la qualité du code.
Imaginez que nous ayons une fonction qui gère les méthodes de paiement : PayPal, VISA, MASTERCARD et BITCOIN. En utilisant un Enum pour les méthodes de paiement, nous pouvons nous assurer que la fonction ne reçoit que des méthodes de paiement valides, et non "MASTERCARDD" ou "CASH", ce qui pourrait entraîner des erreurs dans le programme.
Exercice 1 - Créer un Enum
Créez un Enum nommé EyeColor et implémentez-le dans la classe Person du module précédent. EyeColor doit avoir les valeurs suivantes :
BLUEBROWNGREENHAZEL
Enum est largement utilisé dans le développement de jeux
Si vous effectuez des recherches dans la documentation de différents jeux, vous verrez souvent qu’ils utilisent des Enums pour définir des éléments tels que les armes, les ennemis, les niveaux et autres. Cela facilite la gestion de ces éléments dans le code et permet de réduire les erreurs.

