Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиSystem Design for Python JuniorsМодуль 1 · Основи проектування системиКешування: коли, де, щоpredict5 / 105
+100 XP
Завдання
📝 **Завдання:** Спрогнозуйте 7-рядкове трасування, створене чотирма читаннями каталогу продуктів на шарі кешу (кожен промах друкує «miss», а потім «db»; попадання друкує лише «hit»). Одна недійсність посередині скидає зображення. 📋 Реалізуйте наведену вище функцію. Тести запускаються автоматично. 💡 **Підказка:** Перечитайте теорію, якщо ви застрягли.
Передбач вивід

Прочитай код уважно

class CacheAside:
    def __init__(self, db):
        self.cache = {}
        self.db = db
        self.log = []

    def read(self, key):
        if key in self.cache:
            self.log.append("hit")
            return self.cache[key]
        self.log.append("miss")
        # Fall back to DB.
        value = self.db[key]
        self.log.append("db")
        self.cache[key] = value
        return value

    def invalidate(self, key):
        self.cache.pop(key, None)

DB = {"product:1": "Widget", "product:2": "Gadget"}
c = CacheAside(DB)

c.read("product:1")    # first read — cold cache
c.read("product:1")    # second read — should hit
c.read("product:2")    # different key — cold
c.invalidate("product:1")
c.read("product:1")    # invalidated — back to db

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

# What does this print? Type your prediction.

Що виведе програма? Напиши тут:

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…