Enum en Python

Muhammad Waiz Khan 30 enero 2023
  1. Enum en Python usando el módulo enum
  2. Implementar Enum en Python usando una sintaxis de clase regular
Enum en Python

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