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 →
← CorsiSystem Design for Python JuniorsModulo 1 · Fondamenti di progettazione del sistemaIdempotenzapredict14 / 105
+100 XP
Compito
📝 **Compito:** Prevedere il log di quattro righe. Il server utilizza una cache delle chiavi di idempotenza; la stessa chiave restituisce il risultato memorizzato nella cache, la nuova chiave elabora un nuovo addebito. 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

class ChargeService:
    def __init__(self):
        self.balance = 0           # running ledger
        self.seen = {}             # idempotency-key → cached response
        self.log = []

    def charge(self, key, amount):
        if key in self.seen:
            self.log.append(f"cached {self.seen[key]}")
            return self.seen[key]
        self.balance += amount
        receipt = f"OK {self.balance}"
        self.seen[key] = receipt
        self.log.append(f"processed {receipt}")
        return receipt

svc = ChargeService()
svc.charge("idem-A", 100)    # first attempt — processes
svc.charge("idem-A", 100)    # retry SAME key — should return cached
svc.charge("idem-A", 100)    # another retry — still cached
svc.charge("idem-B", 50)     # new key — fresh charge

print("\n".join(svc.log))

# What does this print? Type your prediction.

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…