Aprende a usar import enum y conviértete en experto con Python

| Última modificación: 4 de febrero de 2025 | Tiempo de Lectura: 3 minutos

Cuando empecé a programar en Python, gestionar constantes y valores simbólicos en mi código era un dolor de cabeza. Usaba simples variables, listas o diccionarios para representar estados y opciones, pero a medida que los proyectos crecían, todo se volvía un caos. Un día, un compañero me recomendó usar import enum, y fue un antes y un después en mi forma de escribir código.

Si alguna vez has lidiado con valores que representan estados o categorías en tu código y has terminado con estructuras desordenadas y difíciles de mantener, sabes de lo que te hablo. En este artículo, te mostraré cómo import enum puede ayudarte a escribir código más limpio, estructurado y fácil de depurar.

import enum

¿Qué es import enum y por qué deberías usarlo?

En términos simples, import enum en Python te permite definir enumeraciones, que son conjuntos de nombres simbólicos asociados a valores únicos. Esto facilita la lectura y mantenimiento del código, evitando errores derivados del uso de valores mágicos.

Por ejemplo, en lugar de usar números enteros o cadenas para representar estados, puedes hacer esto:

from enum import Enum

class Estado(Enum):
INICIADO = 1
EN_PROGRESO = 2
FINALIZADO = 3

Ahora, en lugar de comparar valores enteros o cadenas dispersas en tu código, puedes hacer algo mucho más legible:

estado_actual = Estado.EN_PROGRESO

if estado_actual == Estado.EN_PROGRESO:
print("El proceso está en curso")

Esto no solo mejora la claridad del código, sino que también evita errores comunes, como comparar valores incorrectos o no saber exactamente qué representa cada número.

¿Cómo crear y usar enumeraciones en Python?

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Las enumeraciones en Python se pueden definir utilizando la clase base Enum. Veamos las formas más comunes de hacerlo.

Definir una enumeración con la sintaxis de clase

El método más habitual para definir una enumeración es crear una clase que herede de Enum y definir los valores dentro de la clase.

from enum import Enum

class Color(Enum):
ROJO = 1
VERDE = 2
AZUL = 3

Cada elemento dentro de la enumeración tiene un nombre y un valor único. Puedes acceder a ellos de la siguiente forma:

print(Color.ROJO)      # Color.ROJO
print(Color.ROJO.name) # ROJO
print(Color.ROJO.value) # 1

Crear enumeraciones con la sintaxis funcional

También es posible crear enumeraciones de forma dinámica usando la función Enum.

from enum import Enum

Color = Enum('Color', [('ROJO', 1), ('VERDE', 2), ('AZUL', 3)])

print(Color.ROJO) # Color.ROJO

Aunque este método es menos común, puede ser útil si necesitas definir enumeraciones de manera programática.

Tipos de enumeraciones en Python

Python proporciona diferentes tipos de enumeraciones para distintos casos de uso.

  • IntEnum: Si necesitas que los valores de la enumeración sean enteros y compatibles con operaciones matemáticas, puedes usar IntEnum del siguiente modo:
from enum import IntEnum

class Estado(IntEnum):
INICIADO = 1
EN_PROGRESO = 2
FINALIZADO = 3

print(Estado.INICIADO + 1) # 2
  • StrEnum: Para enumeraciones basadas en cadenas, puedes usar StrEnum (a partir de Python 3.11):
from enum import StrEnum

class Opcion(StrEnum):
SI = "sí"
NO = "no"
QUIZAS = "quizás"

print(Opcion.SI) # SI
  • Flag e IntFlag

Si necesitas combinaciones de valores con operaciones bit a bit, Flag e IntFlag son la mejor opción.

from enum import Flag, auto

class Permiso(Flag):
LECTURA = auto()
ESCRITURA = auto()
EJECUCION = auto()

permiso_usuario = Permiso.LECTURA | Permiso.ESCRITURA

print(Permiso.LECTURA in permiso_usuario) # True
print(Permiso.EJECUCION in permiso_usuario) # False

Recomendaciones para usar import enum en Python

Para aprovechar al máximo import enum, sigue estas recomendaciones:

  • Usa nombres en mayúsculas para los miembros de la enumeración, así mantienes coherencia con las convenciones de Python.
  • Si necesitas enumeraciones que funcionen como enteros o cadenas en operaciones matemáticas o de comparación, usa IntEnum o StrEnum.
  • Evita cambiar los valores de las enumeraciones después de su definición, ya que pueden afectar la integridad del código.
  • Si necesitas asegurarte de que cada valor sea único, usa el decorador unique.
from enum import Enum, unique

@unique
class Estado(Enum):
INICIADO = 1
EN_PROGRESO = 2
FINALIZADO = 3

Esto evitará que se asignen valores duplicados dentro de la enumeración.

import enum en python

Saber cómo usar import enum es solo una de las muchas habilidades que necesitas para escribir código Python eficiente y escalable. Si quieres llevar tu conocimiento al siguiente nivel y transformar tu vida con una carrera en tecnología, nuestro Bootcamp en programación desde cero de KeepCoding es para ti. En poco tiempo, te convertirás en un profesional del desarrollo y estarás listo para trabajar en un sector con alta demanda, salarios competitivos y estabilidad laboral. No esperes más y únete a la revolución tecnológica.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado