La clase Enum
Defina grupos de constantes con nombre
La clase Enum es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
¿Por qué usar enums?
Un enum (enumeración) es un conjunto de valores constantes con nombre que están relacionados. En lugar de dispersar cadenas o números mágicos por el código, asigna un nombre claro a cada valor.
- Código autodocumentado.
- Protección frente a errores tipográficos.
- Un conjunto fijo y conocido de opciones.
Definir un Enum
Herede de Enum y enumere los miembros con el formato NAME = value. Por convención, los nombres de los miembros se escriben en mayúsculas.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED)name y value
Cada miembro del enum tiene un .name (el identificador) y un .value (el valor asignado).
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
c = Color.GREEN
print(c.name)
print(c.value)Los miembros son singletons
Cada miembro es un objeto singleton único. Compare los miembros con is o ==; el mismo miembro siempre es exactamente el mismo objeto.
from enum import Enum
class Color(Enum):
RED = 1
BLUE = 2
print(Color.RED is Color.RED)
print(Color.RED == Color.BLUE)Buscar por valor
Llame a la clase del enum con un valor para obtener el miembro correspondiente. Si el valor no existe, se genera ValueError.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
print(Color(2))
try:
Color(99)
except ValueError as e:
print('Bad value:', e)Buscar por nombre
Utilice el acceso mediante corchetes con la cadena que contiene el nombre del miembro para buscarlo por nombre. Esto resulta práctico al leer nombres de una configuración o de la entrada del usuario.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
print(Color['GREEN'])Iterar sobre los miembros
Un enum es iterable. Al recorrerlo se obtiene cada miembro en el orden en que se definió, lo que resulta ideal para crear menús o validar opciones.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
for c in Color:
print(c.name, c.value)Valores de cadena
Los valores de un enum no están limitados a los enteros. Las cadenas son habituales, especialmente para valores que se serializan o se almacenan.
from enum import Enum
class Status(Enum):
ACTIVE = 'active'
PAUSED = 'paused'
CLOSED = 'closed'
print(Status.PAUSED.value)
print(Status('closed'))auto() para los valores
Cuando los números concretos no importan, utilice auto() para asignar valores automáticamente, empezando en 1 y aumentando de uno en uno.
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
SOUTH = auto()
EAST = auto()
WEST = auto()
for d in Direction:
print(d.name, d.value)Enums en funciones
Utilizar enums como parámetros de función hace más clara la intención y protege frente a entradas no válidas. Compare los miembros directamente dentro de la lógica.
from enum import Enum
class Light(Enum):
RED = 1
YELLOW = 2
GREEN = 3
def can_go(light):
return light is Light.GREEN
print(can_go(Light.GREEN))
print(can_go(Light.RED))Miembros en un diccionario
Los miembros de un enum admiten hash, por lo que funcionan como claves de diccionario. Es una forma sencilla de asociar datos a cada constante con nombre.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
hex_codes = {Color.RED: '#ff0000', Color.GREEN: '#00ff00'}
print(hex_codes[Color.RED])Comprobación rápida
¿Cómo se comparan correctamente dos miembros de un enum para comprobar su identidad?
Resumen
Ha aprendido a definir grupos de constantes con nombre mediante Enum.
- Los miembros tienen
.namey.value. - Busque por valor con
Color(v)y por nombre conColor['NAME']. - Los enums son iterables y sus miembros son singletons.
- Utilice
auto()cuando los valores exactos no importen.
Preguntas frecuentes
¿La lección «La clase Enum» es gratis?
Sí — el texto completo de «La clase Enum» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «La clase Enum»?
Defina grupos de constantes con nombre Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «La clase Enum»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.