Maison >développement back-end >Tutoriel Python >Comment implémenter et utiliser des énumérations en Python ?

Comment implémenter et utiliser des énumérations en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 06:16:08975parcourir

How Do I Implement and Use Enumerations in Python?

Implémentation d'énumérations en Python

Python fournit un module d'énumération intégré dans Python 3.4 ou supérieur. Ce module permet la représentation d'énumérations, qui sont des collections de constantes nommées. Pour l'utiliser, vous pouvez suivre ces étapes :

  1. Importer le module enum :

    import enum
  2. Définir l'énumération :

    Animal = enum.Enum('Animal', 'ant bee cat dog')
  3. Accédez aux membres du énumération :

    Animal.ant  # returns <Animal.ant: 1>
    Animal['ant']  # returns <Animal.ant: 1> (string lookup)
    Animal.ant.name  # returns 'ant' (inverse lookup)

Vous pouvez également définir une énumération en utilisant une approche basée sur les classes :

class Animal(enum.Enum):
    ant = 1
    bee = 2
    cat = 3
    dog = 4

Versions antérieures de Python

Dans les versions antérieures de Python, vous pouvez créer votre propre fonctionnalité d'énumération personnalisée à l'aide d'un class:

class Enum(object):
    def __init__(self, *args):
        self.keys = args

    def __getattr__(self, attr):
        try:
            return attr, self.keys.index(attr)
        except:
            raise AttributeError(attr)

Utilisation de typing.Literal dans MyPy

Lorsque vous utilisez MyPy pour la vérification de type, vous pouvez également exprimer des énumérations en utilisant typing.Literal:

from typing import Literal

Animal: Literal['ant', 'bee', 'cat', 'dog']

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn