Μετάβαση στο κύριο περιεχόμενο
🔒 Λειτουργία προεπισκόπησης. Τα πρώτα δεκαπέντε μαθήματα Foundations είναι δωρεάν· αυτό είναι Pro. Ξεκινήστε ένα 7ήμερο trial για να ξεκλειδώσετε τον επεξεργαστή, τις υποδείξεις AI και το υπόλοιπο του προγράμματος. Απαιτείται κάρτα, ακυρώνετε οποιαδήποτε στιγμή από το Dashboard.Ξεκινήστε 7ήμερο trial →
← ΜαθήματαSystem Design for Python JuniorsΕνότητα 1 · Βασικές αρχές σχεδίασης συστήματοςΑνικανότηταpredict14 / 105
+100 XP
Εργασία
📝 **Εργασία:** Προβλέψτε το αρχείο καταγραφής τεσσάρων γραμμών. Ο διακομιστής χρησιμοποιεί μια προσωρινή μνήμη κλειδιού idempotency. Το ίδιο κλειδί επιστρέφει το αποτέλεσμα της προσωρινής αποθήκευσης, το νέο κλειδί επεξεργάζεται μια νέα χρέωση. 📋 Υλοποιήστε την παραπάνω λειτουργία. Οι δοκιμές εκτελούνται αυτόματα. 💡 **Υπόδειξη:** Ξαναδιάβασε τη θεωρία αν κολλήσεις.
Πρόβλεψε έξοδο

Διάβασε τον κώδικα προσεκτικά

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.

Τι θα εμφανίσει το πρόγραμμα; Γράψε εδώ:

💬 Συζήτηση

Γίνε ο πρώτος — κάνε μια ερώτηση ή μοιράσου μια συμβουλή.
Σύνδεση για να συμμετάσχεις στη συζήτηση. Η ανάγνωση είναι δωρεάν.
Φόρτωση συζήτησης…