Obtenir le nom d’une Enum par sa valeur en Python

Obtenir le nom d’une Enum par sa valeur en Python #

Pour obtenir un nom d’énumération par valeur, passez la valeur à la classe d’énumération et
accéder à la name par exemple Sizes(1).name. Lorsque la valeur est transmise à
la classe, nous obtenons l’accès au membre correspondant de l’enum, sur lequel nous pouvons accéder à
le site name attribut.

from enum import Enum

class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


print(Sizes(1).name)  
print(Sizes(2).name)  
print(Sizes(3).name)  

Le site Sizes(1) syntaxe nous permet de passer un entier à la classe et d’obtenir le
membre correspondant de l’enum.

from enum import Enum


class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


value = 1

print(Sizes(value))  

print(Sizes(value).name)  

Ceci est utile lorsque vous ne connaissez pas le nom du membre de l’enum à l’avance (parce qu’il est lu depuis un fichier ou récupéré depuis une API).

Si vous avez besoin d’obtenir une liste des noms ou des valeurs d’une énumération, utilisez une compréhension de liste.

from enum import Enum


class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


values = [member.value for member in Sizes]
print(values)  

names = [member.name for member in Sizes]
print(names)  

Les compréhensions de liste sont utilisées pour effectuer une opération pour chaque élément, ou pour
sélectionner un sous-ensemble d’éléments qui remplissent une condition.

Vous pouvez utiliser la même approche si vous avez besoin d’obtenir une liste de tuples contenant le nom et la valeur de chaque membre de l’énumération.
contenant le nom et la valeur de chaque membre de l’énumération.

from enum import Enum


class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


result = [(member.name, member.value) for member in Sizes]


print(result)

Le premier élément de chaque tuple est le nom, et le second – la valeur du membre de l’énumération.
membre de l’énumération.

Utilisez l’option in si vous devez vérifier si une valeur fait partie d’une énumération.

from enum import Enum


class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


values = [member.value for member in Sizes]
print(values)  

if 2 in values:
    
    print('2 is in values')

L’opérateur
dans l’opérateur
teste l’appartenance. Par exemple, x in l est évalué à True si x est un
membre de lsinon il est évalué à False.

Vous pouvez utiliser un simple for boucle si vous avez besoin d’itérer sur un enum.

from enum import Enum


class Sizes(Enum):
    SMALL = 1
    MEDIUM = 2
    LARGE = 3


for size in Sizes:
    print(size)
    print(size.name, size.value)

Laisser un commentaire