Enums, a fondo en Python
auto, StrEnum y Flag cubren casi todo para lo que sirven los enums.
from enum import Flag, StrEnum, auto
class Tema(StrEnum):
DEFAULT = auto()
MONOKAI = auto()
class Modo(Flag):
EDITOR = auto()
TIMED = auto()
QUIET = auto()
print(Tema.MONOKAI, Tema.MONOKAI == "monokai")
combo = Modo.EDITOR | Modo.TIMED
print(combo, Modo.TIMED in combo, Modo.QUIET in combo)
print([m.name for m in Modo if m in combo])
Cómo funciona
auto()asigna los valores para que no puedas tipear uno mal.- Los miembros de
StrEnumson cadenas, así que se serializan directo. - Los miembros de
Flagse combinan con los operadores de bits.
Palabras clave y builtins usados aquí
classforifprint
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 340
- Tokens
- 100
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 57 segundos.
Paso 2 de 3 en Datos y enums; paso 46 de 53 en Python pythónico.