Enum en Python
-
Enum en Python usando el módulo
enum
- Implementar Enum en Python usando una sintaxis de clase regular
En este tutorial, veremos diferentes métodos para usar o implementar la enumeración
en Python. La enumeración
o enumeración es un tipo especial de clase que representa un conjunto de constantes con nombre de tipo numérico. Cada constante nombrada en el tipo enum
tiene su propio valor entero, que depende de la posición constante nombrada del conjunto.
El tipo enum
se usa para asignar los nombres de las constantes al conjunto de valores enteros en muchos lenguajes de programación como C#, Java, Go, C y C++, etc. Podemos implementar y usar el tipo de enumeración en Python usando los métodos que se explican a continuación.
Enum en Python usando el módulo enum
El módulo enum
de Python tiene cuatro clases que son Enum
, IntEnum
, Flag
e IntFlag
, para más detalles sobre el módulo y las clases, se puede visitar este enlace.
En la clase Enum
, el valor de cada constante de nombre es un número entero por defecto, pero también podemos pasar tipos de datos como string o float, etc. Los valores de las constantes de nombre de la clase IntEnum
, como sugiere el nombre, pueden ser solo enteros.
Podemos crear y usar la enumeración en Python usando las clases Enum
e IntEnum
. Los siguientes códigos de ejemplo demuestran cómo usar estas clases para implementar diferentes tipos de enumeradores en Python.
Enumerador simple:
from enum import Enum
Names = Enum("Names", ["Waiz", "Tom", "Sara", "Lee"])
Podemos usar el iterador del par (nombre, valor)
para guardar valores específicos con cada nombre, representando id o marcas, etc., de las constantes de nombre. Podemos acceder al valor de la constante de nombre y al nombre usando Enum.nameconstant.value
para acceder a los valores y Enum.nameconstant.name
para acceder a los nombres.
Podemos hacerlo en Python usando el siguiente código de ejemplo.
from enum import Enum
Names = Enum("Names", [("Waiz", 8), ("Tom", 5), ("Sara", 7), ("Lee", 6)])
print(Names.Sara.value)
print(Names.Waiz.name)
Producción :
7
Waiz
Otra forma de crear un enumerador es utilizando la sintaxis de la clase y luego pasando Enum
o IntEnum
como se muestra en el siguiente código de ejemplo:
from enum import IntEnum
class Student(IntEnum):
Waiz = 1
Ali = 2
John = 3
Lee = 4
print(Student.Lee.value)
Producción :
4
Implementar Enum en Python usando una sintaxis de clase regular
En versiones de Python anteriores a 2.4, el módulo Enum
no está disponible, en ese caso, podemos implementar nuestra propia clase
del enumerador Enum
usando la sintaxis de clase.
Podemos implementar la clase de enumerador simple con los valores predeterminados a partir de 1
como en la clase Enum
del módulo enum
, como se demuestra en el siguiente código de ejemplo:
class Zoo:
Lion, Tiger, Cheetah, Leopard = range(1, 5)
print Zoo.Lion
Producción :
1