Zum Hauptinhalt springen
🔒 Vorschaumodus. Die ersten fünfzehn Foundations-Lektionen sind kostenlos; diese hier ist Pro. Starte einen 7-Tage-Trial, um den Editor, AI-Hinweise und den Rest des Lehrplans freizuschalten. Karte erforderlich, jederzeit im Dashboard kündbar.7-Tage-Trial starten →
← KurseSystem Design for Python JuniorsModul 1 · Grundlagen des SystemdesignsIdempotenzpredict14 / 105
+100 XP
Aufgabe
📝 **Aufgabe:** Vorhersage des vierzeiligen Protokolls. Der Server verwendet einen Idempotenzschlüssel-Cache. Der gleiche Schlüssel gibt das zwischengespeicherte Ergebnis zurück, der neue Schlüssel verarbeitet eine neue Gebühr. 📋 Implementieren Sie die obige Funktion. Tests laufen automatisch ab. 💡 **Hinweis:** Lesen Sie die Theorie noch einmal, wenn Sie nicht weiterkommen.
Sage die Ausgabe vorher

Lies den Code sorgfältig

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.

Was wird das Programm ausgeben? Schreib hier:

💬 Diskussion

Sei der erste — stelle eine Frage oder teile einen Tipp.
Anmelden um an der Diskussion teilzunehmen. Lesen ist kostenlos.
Diskussion wird geladen…