Перейти к основному содержимому
🔒 Режим превью. Первые 15 уроков Foundations — бесплатные; этот — Pro. Запусти 7-дневный trial чтобы открыть редактор, AI-подсказки и остальной курс. Нужна карта, отмена в Dashboard в любой момент.Начать 7-дневный trial →
← КурсыSenior Deep-DivesModule 10 · Production idioms (modern Python)enum.StrEnum — type-safe strings that serialise like stringspredict145 / 161
+150 XP
Задание
📝 **Задание:** Предскажите результат в 9 строк. StrEnum «Статус» состоит из 3 членов. Упражнения урока: print(member) дает ЗНАЧЕНИЕ, а не полное имя (неожиданность StrEnum); == сравнение с простой строкой имеет значение True; isinstance(member, str) имеет значение True; Интерполяция f-строки печатает значение; работает поиск по значению и работает средство доступа поиска по имени; неверный поиск вызывает ValueError; итерация следует порядку объявления. 📋 Реализуйте функцию выше. Тесты запускаются автоматически. 💡 **Подсказка:** Если вы застряли, перечитайте теорию.
Предскажи вывод

Прочти код внимательно

from enum import StrEnum


class Status(StrEnum):
    PENDING = "pending"
    ACTIVE = "active"
    CANCELLED = "cancelled"


s = Status.ACTIVE

# 1. print(member) — the StrEnum surprise: value, NOT Status.ACTIVE
print(s)
# 2. Equal to the plain string
print(s == "active")
# 3. .value accessor (same as print here, but explicit)
print(s.value)
# 4. isinstance(member, str) — StrEnum members ARE strings
print(isinstance(s, str))
# 5. f-string interpolation uses str(member) = the value
print(f"status: {s}")

# 6. Lookup by value — print(member) again returns value
print(Status("pending"))
# 7. .name accessor — capital identifier
print(Status("pending").name)

# 8. Invalid value
try:
    Status("nope")
except ValueError:
    print("invalid value")

# 9. Iteration order = declaration order
print([m.value for m in Status])

Что выведет программа? Напиши здесь:

💬 Обсуждение

Будьте первым — задайте вопрос или поделитесь подсказкой.
Войдите чтобы участвовать в обсуждении. Чтение бесплатно.
Загрузка обсуждения…