Mediumenum
Что такое enum (Enum)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
enum (Python 3.4) — перечисления. Для фиксированных наборов констант (статусы, типы, modes). Enum immutable, singleton каждого значения (Color.RED is Color.RED), hashable.
from enum import Enum, IntEnum, Flag, auto, unique
@unique # проверяет уникальность значений
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
Color.RED.value # 1
Color.RED.name # 'RED'
Color(1) # Color.RED (по value)
Color['RED'] # Color.RED (по name)
for c in Color: print(c) # итерация
# IntEnum — можно сравнивать с int
class Priority(IntEnum):
LOW, MEDIUM, HIGH = range(3)
# Flag — bitwise OR
class Perm(Flag):
R = 4; W = 2; X = 1
RW = R | Wauto()— auto value;StrEnum(Python 3.11) — str + Enum;- Custom
__init__для дополнительных данных;
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.