0Pricing
Python Academy · Lección

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 .name y .value.
  • Busque por valor con Color(v) y por nombre con Color['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.

Todas las lecciones de este curso

  1. La clase Enum
  2. IntEnum y Flag
  3. Conceptos básicos de NamedTuple
  4. typing.NamedTuple
← Volver a Python Academy