Lis le code attentivement
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])
Que va afficher le programme ? Écris ici :