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 6 · FAANG-2026 deep divescontextvars in async — Task context isolationpredict108 / 161
+150 XP
Aufgabe
📝 **Aufgabe:** Die genaue Ausgabe vorhersagen. \`req_id\` ist in \`main\` auf \`"req-A"\` gesetzt. Dann: (1) \`await child()\` – sieht das Kind „req-A“ oder die Standardeinstellung? (2) \`asyncio.create_task(isolated())\` wo isoliert funktioniert \`set("req-B")\` – läuft seine Änderung zurück an main? (3) Was sieht main nach beidem? 📋 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 asyncio
import contextvars

req_id = contextvars.ContextVar("req_id", default="none")


async def child():
    return f"child:{req_id.get()}"


async def isolated():
    req_id.set("req-B")
    return f"isolated:{req_id.get()}"


async def main():
    req_id.set("req-A")
    a = await child()
    t = asyncio.create_task(isolated())
    b = await t
    return [a, b, f"main:{req_id.get()}"]


print(asyncio.run(main()))

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…