enum — Перечисления

Перечисление (enum) — это набор символических имен, привязанных к уникальным константным значениям.

from enum import Enum, auto

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(Color.RED.name)   # 'RED'
print(Color.RED.value)  # 1

# Автоматические значения
class Day(Enum):
    MON = auto()  # 1
    TUE = auto()  # 2

# Итерация
for d in Day:
    print(d.name)

Полный справочник API (API Reference)

Базовые классы

Класс Описание
enum.Enum Главный класс, от которого наследуются для создания перечислений.
enum.IntEnum Класс, чьи элементы также являются наследниками стандартного типа int (с ними можно производить мат. операции).
enum.Flag Класс, элементы которого можно комбинировать битовыми операциями `

Утилиты

Функция/Декоратор Описание
enum.auto() Автоматически подставляет уникальное целочисленное значение (обычно 1, 2, 3...) в член перечисления.
@enum.unique Декоратор для перечисления. Вызовет ошибку ValueError, если внутри есть два ключа с одинаковыми значениями.