0Pricing
Python Academy · Leçon

La classe Enum

Définir des groupes de constantes nommées

La classe Enum est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Pourquoi utiliser des énumérations ?

Une énumération est un ensemble de valeurs constantes nommées qui vont ensemble. Au lieu de disperser des chaînes ou des nombres magiques dans votre code, vous donnez à chaque valeur un nom explicite.

  • Un code qui s'explique de lui-même.
  • Une protection contre les fautes de frappe.
  • Un ensemble fixe et connu de choix.

Définir une énumération

Dérivez une sous-classe de Enum et répertoriez ses membres sous la forme NAME = value. Par convention, les noms des membres s'écrivent en majuscules.

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(Color.RED)

Nom et valeur

Chaque membre d'une énumération possède un .name (l'identifiant) et un .value (la valeur attribuée).

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2

c = Color.GREEN
print(c.name)
print(c.value)

Les membres sont uniques

Chaque membre est une instance unique. Comparez les membres avec is ou == : un même membre est toujours exactement le même objet.

from enum import Enum

class Color(Enum):
    RED = 1
    BLUE = 2

print(Color.RED is Color.RED)
print(Color.RED == Color.BLUE)

Rechercher par valeur

Appelez la classe de l'énumération avec une valeur pour obtenir le membre correspondant. Une valeur inconnue lève ValueError.

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2

print(Color(2))
try:
    Color(99)
except ValueError as e:
    print('Bad value:', e)

Rechercher par nom

Utilisez l'accès par crochets avec la chaîne contenant le nom du membre pour rechercher un membre par son nom. C'est pratique lorsque vous lisez des noms depuis une configuration ou une entrée utilisateur.

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2

print(Color['GREEN'])

Parcourir les membres

Une énumération est itérable. La boucle renvoie chaque membre dans l'ordre de sa définition, ce qui est idéal pour créer des menus ou valider des choix.

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

for c in Color:
    print(c.name, c.value)

Valeurs textuelles

Les valeurs d'une énumération ne se limitent pas aux entiers. Les chaînes sont courantes, notamment pour les valeurs qui seront sérialisées ou stockées.

from enum import Enum

class Status(Enum):
    ACTIVE = 'active'
    PAUSED = 'paused'
    CLOSED = 'closed'

print(Status.PAUSED.value)
print(Status('closed'))

auto() pour les valeurs

Lorsque les nombres exacts n'ont pas d'importance, utilisez auto() pour attribuer automatiquement les valeurs, en commençant par 1 et en incrémentant.

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    SOUTH = auto()
    EAST = auto()
    WEST = auto()

for d in Direction:
    print(d.name, d.value)

Les énumérations dans les fonctions

Utiliser des énumérations comme paramètres de fonction rend l'intention claire et protège contre les entrées non valides. Comparez directement les membres dans la logique de la fonction.

from enum import Enum

class Light(Enum):
    RED = 1
    YELLOW = 2
    GREEN = 3

def can_go(light):
    return light is Light.GREEN

print(can_go(Light.GREEN))
print(can_go(Light.RED))

Les membres dans un dictionnaire

Les membres d'une énumération sont hachables et peuvent donc servir de clés de dictionnaire. C'est une manière claire d'associer des données à chaque constante nommée.

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

hex_codes = {Color.RED: '#ff0000', Color.GREEN: '#00ff00'}
print(hex_codes[Color.RED])

Vérification rapide

Comment comparer correctement deux membres d'une énumération pour vérifier leur identité ?

Récapitulatif

Vous avez appris à définir des groupes de constantes nommées avec Enum.

  • Les membres possèdent .name et .value.
  • Recherchez par valeur avec Color(v) et par nom avec Color['NAME'].
  • Les énumérations sont itérables et leurs membres sont des instances uniques.
  • Utilisez auto() lorsque les valeurs exactes n'ont pas d'importance.

Questions Fréquemment Posées

La leçon « La classe Enum » est-elle gratuite ?

Oui — le texte complet de « La classe Enum » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « La classe Enum » ?

Définir des groupes de constantes nommées Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « La classe Enum » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. La classe Enum
  2. IntEnum et Flag
  3. Les bases de NamedTuple
  4. typing.NamedTuple
← Retour à Python Academy