Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSenior Deep-DivesModule 10 · Production idioms (modern Python)enum.StrEnum — type-safe strings that serialise like stringspredict145 / 161
+150 XP
Compito
📝 **Compito:** Prevedere l'output su 9 righe. Uno "Stato" di StrEnum ha 3 membri. Gli esercizi della lezione: print(member) fornisce VALUE e non il nome qualificato (la sorpresa StrEnum); == il confronto con la stringa semplice è vero; isinstance(member, str) è vero; l'interpolazione f-string stampa il valore; funziona la ricerca per valore e funziona la funzione di accesso della ricerca per nome; una ricerca non valida solleva ValueError; l'iterazione segue l'ordine di dichiarazione. 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

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])

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…