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 →
← KurseSenior Deep-DivesModule 7 · Memory, GC, modern typingWeakValueDictionary — caches that let GC do its jobpredict118 / 161
+150 XP
Aufgabe
📝 **Aufgabe:** Die genaue Ausgabe vorhersagen. Nach „del d“ ist der einzige starke Verweis auf das Doc verschwunden; „gc.collect()“ fordert es zurück und der WeakValueDictionary-Slot verschwindet. 📋 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

import weakref
import gc


class Doc:
    def __init__(self, name):
        self.name = name


cache: weakref.WeakValueDictionary = weakref.WeakValueDictionary()
d = Doc("alpha")
cache["alpha"] = d

print("alpha" in cache)
print(cache["alpha"].name)
print(len(cache))

del d
gc.collect()

print("alpha" in cache)
print(len(cache))

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…