Cómo usar Enum en Python para agrupar constantes

| Última modificación: 15 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Python es un lenguaje de programación versátil y poderoso que ofrece numerosas características que facilitan el desarrollo de aplicaciones. Una de estas características es el uso de Enum en Python, una herramienta que te permite agrupar constantes y facilitar la lectura y el mantenimiento de tu código. En este artículo, explorarás qué es Enum en Python, cómo se utiliza y por qué es una herramienta valiosa para los desarrolladores.

Introducción a Enum en Python

Enum, que es la abreviatura de enumeración, es una característica que permite definir un conjunto de nombres descriptivos vinculados a valores constantes. Esto significa que, en lugar de utilizar números enteros o cadenas de texto para representar constantes, puedes crear un Enum en Python con nombres significativos. Veamos cómo funciona esto en la práctica.

from enum import Enum 


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

En este ejemplo, hemos creado una enumeración llamada Colores con tres miembros: ROJO, VERDE y AZUL. Cada uno de estos miembros se asocia a un valor entero, lo que facilita su uso en el código.

Ventajas de usar Enum en Python

Claridad y legibilidad

El uso de Enum en Python mejora significativamente la claridad y la legibilidad del código. En lugar de utilizar valores crípticos, como 1, 2 o 3, puedes utilizar nombres descriptivos que hacen que el código sea más fácil de entender.

color = Colores.ROJO

Intellisense y autocompletado

Las enumeraciones también son compatibles con las herramientas de desarrollo, lo que significa que obtendrás sugerencias de autocompletado cuando estés escribiendo código. Esto reduce los errores de escritura y acelera el proceso de desarrollo.

Evita colisiones de nombres

Las enumeraciones también pueden ayudarte a evitar colisiones de nombres en tu código. Si tienes múltiples constantes con nombres similares, es fácil cometer errores tipográficos. Con Enum, cada miembro de la enumeración es único, lo que reduce la posibilidad de errores.

Uso de dunder nombres en Enum

Cuando trabajas con Enum en Python, puedes utilizar dunder nombres (nombres con doble guion bajo al principio y al final) para personalizar el comportamiento de tu enumeración. Algunos de los dunder nombres más comunes que puedes utilizar son __str__, __repr__ y __members__.

Por ejemplo, puedes personalizar la representación de una enumeración utilizando __str__:

from enum import Enum
 
class Colores(Enum): 
       ROJO = 1 
       VERDE = 2 
       AZUL = 3 
       
       def __str__(self): 
              return self.name.lower()

Con esta personalización, cuando imprimas un miembro de la enumeración, obtendrás el nombre en minúsculas:

print(Colores.ROJO) # Output: rojo

Extender Enum con una clase base

Puedes extender Enum utilizando una clase base. Esto te permite agregar funcionalidades específicas a tus enumeraciones. Por ejemplo, podrías crear una clase base llamada EnumExtendida que incluya métodos útiles para todas las enumeraciones de tu proyecto.

from enum import Enum, EnumMeta 

class EnumExtendida(Enum): 
       @classmethod 
       def lista_de_nombres(cls): 
              return [miembro.name for miembro in cls] 

class Colores(EnumExtendida): 
       ROJO = 1 
       VERDE = 2 
       AZUL = 3 

print(Colores.lista_de_nombres()) # Output: ['ROJO', 'VERDE', 'AZUL']

Tipos de datos personalizados en Enum

Además de utilizar números enteros como valores de enumeración, también puedes utilizar otros tipos de datos personalizados. Esto puede ser útil cuando necesitas representar datos más complejos. Por ejemplo, podrías usar tuplas como valores de enumeración:

from enum import Enum 

class PuntoCardinal(Enum): 
       NORTE = (1, 0) 
       SUR = (-1, 0) 
       ESTE = (0, 1) 
       OESTE = (0, -1) 

print(PuntoCardinal.NORTE.value) # Output: (1, 0)

Cómo acceder a los miembros de una enumeración

Acceder a los miembros de una enumeración es sencillo. Puedes utilizar la notación de punto para referirte a ellos:

color = Colores.ROJO 
print(color) # Output: Colores.ROJO

También puedes iterar sobre los miembros de una enumeración:

for color in Colores: 
      print(color)

En resumen, Enum en Python es una herramienta poderosa que te permite agrupar constantes de una manera clara y legible. Puedes personalizar Enum utilizando dunder nombres y extenderlo con una clase base. Además, puedes utilizar tipos de datos personalizados para representar datos más complejos.

Aprende más en KeepCoding

Si estás interesado en aprender más sobre Python y desarrollar tus habilidades en el campo de la tecnología de la información, considera unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. En nuestro bootcamp, no solo aprenderás sobre Python, sino que también adquirirás conocimientos en una amplia gama de tecnologías web, lo que te preparará para una carrera emocionante en el sector tecnológico. No te pierdas la oportunidad de cambiar tu vida y acceder a una industria con una alta demanda de profesionales. ¡Únete a KeepCoding y da el primer paso hacia un futuro brillante en la tecnología!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

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